Jormungand
Jormungand Jormungand é o segundo filho do deus Loki com a gigante Angrboda. Odin o raptou e o jogou no grande oceano que circula Midgard. Ele cresceu tanto que seria capaz de cobrir a Terra e morder sua própria cauda. Nas horas vagas estuda programação há 3 anos

Gerar números aleatórios em Java

Gerar números aleatórios em Java

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