Gerando números aleatórios em Java
Java fornece três maneiras de gerar números aleatórios usando alguns métodos e classes integrados, conforme listado abaixo:
- classe java.util.Random
- Método Math.random : pode gerar números aleatórios de tipo duplo.
- Classe ThreadLocalRandom
- Para usar essa classe para gerar números aleatórios, primeiro temos que criar uma instância dessa classe e, em seguida, invocar métodos como nextInt(), nextDouble(), nextLong() etc. usando essa instância.
- Podemos gerar números aleatórios de tipos inteiros, float, double, long, booleanos usando esta classe.
- Podemos passar argumentos aos métodos para colocar um limite superior na faixa dos números a serem gerados. Por exemplo, nextInt (6) gerará números no intervalo de 0 a 5, ambos inclusive.
// A Java program to demonstrate random number generation
// using java.util.Random;
import
java.util.Random;
public
class
generateRandom{
public
static
void
main(String args[])
{
// create instance of Random class
Random rand =
new
Random();
// Generate random integers in range 0 to 999
int
rand_int1 = rand.nextInt(
1000
);
int
rand_int2 = rand.nextInt(
1000
);
// Print random integers
System.out.println(
"Random Integers: "
+rand_int1);
System.out.println(
"Random Integers: "
+rand_int2);
// Generate Random doubles
double
rand_dub1 = rand.nextDouble();
double
rand_dub2 = rand.nextDouble();
// Print random doubles
System.out.println(
"Random Doubles: "
+rand_dub1);
System.out.println(
"Random Doubles: "
+rand_dub2);
}
}
Saída:
Inteiros aleatórios: 547 Inteiros aleatórios: 126 Duplas aleatórias: 0,8369779739988428 Duplas aleatórias: 0,5497554388209912
2) Math.random()
A classe Math contém vários métodos para realizar várias operações numéricas, como cálculo de exponenciação, logaritmos etc. Um desses métodos é random(), este método retorna um valor duplo com um sinal positivo, maior ou igual a 0,0 e menor que 1,0 . Os valores retornados são escolhidos pseudo-aleatoriamente. Este método só pode gerar números aleatórios do tipo Doubles. O programa abaixo explica como usar este método:// Java program to demonstrate working of
// Math.random() to generate random numbers
import
java.util.*;
public
class
generateRandom
{
public
static
void
main(String args[])
{
// Generating random doubles
System.out.println(
"Random doubles: "
+ Math.random());
System.out.println(
"Random doubles: "
+ Math.random());
}
}
Saída:
Duplas aleatórias: 0,13077348615666562 Duplas aleatórias: 0,09247016928442775
3) classe java.util.concurrent.ThreadLocalRandom
Esta classe é introduzida em java 1.7 para gerar números aleatórios do tipo inteiros, duplos, booleanos etc. O programa abaixo explica como usar esta classe para gerar números aleatórios:// Java program to demonstrate working of ThreadLocalRandom
// to generate random numbers.
import
java.util.concurrent.ThreadLocalRandom;
public
class
generateRandom
{
public
static
void
main(String args[])
{
// Generate random integers in range 0 to 999
int
rand_int1 = ThreadLocalRandom.current().nextInt();
int
rand_int2 = ThreadLocalRandom.current().nextInt();
// Print random integers
System.out.println(
"Random Integers: "
+ rand_int1);
System.out.println(
"Random Integers: "
+ rand_int2);
// Generate Random doubles
double
rand_dub1 = ThreadLocalRandom.current().nextDouble();
double
rand_dub2 = ThreadLocalRandom.current().nextDouble();
// Print random doubles
System.out.println(
"Random Doubles: "
+ rand_dub1);
System.out.println(
"Random Doubles: "
+ rand_dub2);
// Generate random booleans
boolean
rand_bool1 = ThreadLocalRandom.current().nextBoolean();
boolean
rand_bool2 = ThreadLocalRandom.current().nextBoolean();
// Print random Booleans
System.out.println(
"Random Booleans: "
+ rand_bool1);
System.out.println(
"Random Booleans: "
+ rand_bool2);
}
}
Saída:
Inteiros aleatórios: 536953314 Inteiros aleatórios: 25905330 Duplas aleatórias: 0,7504989954390163 Duplas aleatórias: 0,7658597196204409 Booleanos aleatórios: falso Booleanos aleatórios: verdadeiro
Referências:
https://docs.oracle.comEste artigo é uma contribuição de Harsh Agarwal . Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando contribute.geeksforgeeks.org ou enviar o seu artigo para contribute@geeksforgeeks.org. Veja o seu artigo na página principal do GeeksforGeeks e ajude outros Geeks.
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.
Atenção leitor! Não pare de aprender agora. Obtenha todos os conceitos importantes de Java Foundation e Coleções com o curso Fundamentals of Java e Java Collections a um preço acessível ao aluno e torne-se pronto para a indústria. Para completar sua preparação desde o aprendizado de um idioma até o DS Algo e muitos mais, consulte o Curso Completo de Preparação para Entrevistas .
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva