Gerar valores (int, doubles, float, long e boolean) aleatórios dentro de um range específico podem ser feitos em Java.
Vou mostrar 3 formas para gerar números aleatórios no Java.
1. Usando a classe Random
Para usar a classe Random para gerar números aleatórios, siga os passos a seguir:
Importar e criar uma instância da classe java.util.Random
. Invocar um dos seguintes métodos:
nextInt()
gera um inteiro aleatório;
nextInt(upperbound)
gera um inteiro aleatório entre 0 e upperbound-1
;
nextFloat()
gera um float entre 0.0 e 1.0;
nextDouble()
gera um double entre 0.0 e 1.0.
import java.util.Random;
class GerarRandom {
public static void main(String args[]) {
Random rand = new Random(); //instancia da classe Random
int upperbound = 25; // limite maximo
// gerar um inteiro aleatorio entre 0 e 24
int int_random = rand.nextInt(upperbound);
double double_random=rand.nextDouble();
float float_random=rand.nextFloat();
System.out.println("Random integer: " + int_random);
System.out.println("Random float: " + float_random);
System.out.println("Random double: " + double_random);
}
}
2. Usando Math.random
Para gerar números aleatórios dentro de um período usando Math.random(), siga as instruções:
class GerarRandom {
public static void main( String args[] ) {
// definir valores minimos e maximo
int min = 50; // inclusive
int max = 100; // exclusive
// Gerar um double entre min e max
double randomDouble = Math.random() * (max - min + 1) + min;
System.out.printf("Double entre %d e %d: %.2f%n", min, max, randomDouble);
// Gerar um inteiro entre min e max
int randomInt = (int) (Math.random() * (max - min + 1) + min);
System.out.printf("Inteiro entre %d e %d: %d%n", min, max, randomInt);
}
}
Observação: este método só pode ser utilizada se você quer gerar um inteiro ou double aleatório. Os números gerados estão entre o valor mínimo inclusivo e máximo exclusivo.
3. Use ThreadLocalRandom
Para gerar números aleatórios usando a classe ThreadLocalRandom, siga os passos:
Importar a classe java.util.concurrent.ThreadLocalRandom
e invocar os métodos:
- para gerar um inteiro aleatório use
ThreadLocalRandom.current().nextInt()
;
- para gerar um double aleatório use
ThreadLocalRandom.current().nextDouble()
;
- para gerar um boolean aleatório use
ThreadLocalRandom.current().nextBoolean()
;
import java.util.concurrent.ThreadLocalRandom;
class GerarRandom {
public static void main( String args[] ) {
// gerar inteiro aleatório
int intRandom = ThreadLocalRandom.current().nextInt();
System.out.println(intRandom);
// gerar double aleatório
double doubleRand = ThreadLocalRandom.current().nextDouble();
System.out.println(doubleRand);
// gerar boolean aleatorio
boolean booleanRand = ThreadLocalRandom.current().nextBoolean();
System.out.println(booleanRand);
}
}
Referências