Gerar número aleatório dentro de um intervalo especificado em Java

Mohammad Irfan 12 outubro 2023
  1. Gerar número aleatório usando a classe ThreadLocalRandom em Java
  2. Gere um número aleatório usando a classe Math em Java
  3. Gere um número aleatório usando a classe Random em Java
  4. Gere um número aleatório usando a classe Random em Java
  5. Gere um número aleatório usando a classe Random e IntStream em Java
  6. Gere um número aleatório usando o método nextFloat em Java
  7. Gerar número aleatório usando a classe RandomData em Java
  8. Gerar número aleatório usando a classe SecureRandom em Java
  9. Gerar número aleatório usando a classe RandomUtils em Java
Gerar número aleatório dentro de um intervalo especificado em Java

Este tutorial apresenta como gerar um número aleatório dentro de um intervalo especificado em Java.

Existem várias maneiras de gerar números aleatórios em Java, como o método nextInt() da classe ThreadLocalRandom, o método random() da classe Math, o método nextInt() da classe Random, o método ints() da classe Random, o método nextFloat() da classe Random e a classe RandomUtil, etc.

Gerar número aleatório usando a classe ThreadLocalRandom em Java

O pacote simultâneo Java fornece uma classe ThreadLocalRandom que possui o método nextInt(). Este método pode gerar um número inteiro aleatório dentro do intervalo especificado. Veja o exemplo abaixo.

import java.util.concurrent.ThreadLocalRandom;

public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    ThreadLocalRandom tlr = ThreadLocalRandom.current();
    int randomNum = tlr.nextInt(min_val, max_val + 1);
    System.out.println("Random Number: " + randomNum);
  }
}

Resultado:

Value in double: 12.9
Value in int: 12

Gere um número aleatório usando a classe Math em Java

A classe Java Math pode ser usada para gerar um número aleatório dentro do intervalo especificado. Aqui, usamos o método random() da classe Math para obter um número aleatório. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    double randomNum = Math.random() * (max_val - min_val);
    System.out.println("Random Number: " + randomNum);
  }
}

Resultado:

Id: 1212
Name: Samre

Gere um número aleatório usando a classe Random em Java

A classe Random de Java pode gerar um inteiro aleatório dentro do intervalo especificado usando o método nextInt(), que retorna um valor inteiro. Veja o exemplo abaixo.

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random ran = new Random();
    int x = ran.nextInt(max_val) + min_val;
    System.out.println("Random Number: " + x);
  }
}

Resultado:

Id: 1212
Name: Samre

Gere um número aleatório usando a classe Random em Java

Esta é outra solução para obter um número inteiro aleatório dentro do intervalo especificado. Aqui, usamos o método nextInt() da classe Random com parâmetros diferentes. Veja o exemplo abaixo.

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    int randomNum = min_val + rand.nextInt((max_val - min_val) + 1);
    System.out.println("Random Number: " + randomNum);
  }
}

Resultado:

Random Number: 75

Gere um número aleatório usando a classe Random e IntStream em Java

Aqui, usamos o método ints() da classe Random que retorna um fluxo de números aleatórios. Usamos o método forEach() para imprimir todos os inteiros aleatórios gerados pelo método ints(). Veja o exemplo abaixo.

import java.util.Random;
import java.util.stream.IntStream;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    IntStream stream = rand.ints(5, min_val, max_val);
    stream.forEach(System.out::println);
  }
}

Resultado:

94
35
90
74
47

Gere um número aleatório usando o método nextFloat em Java

A classe Random fornece um método nextFloat() para gerar um número aleatório do tipo float. Se quisermos obter um número aleatório do tipo float, esse método é útil. Veja o exemplo abaixo.

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    float rand_val = rand.nextFloat() * (max_val - min_val);
    System.out.println(rand_val);
  }
}

Resultado:

71.88764

Gerar número aleatório usando a classe RandomData em Java

Se você estiver trabalhando com a biblioteca apache commons, use a classe RandomData. Esta classe fornece um método nextInt() que retorna um valor inteiro. Podemos usar este método para gerar inteiros aleatórios dentro do intervalo especificado. Veja o exemplo abaixo.

import org.apache.commons.math.random.RandomData;
import org.apache.commons.math.random.RandomDataImpl;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    RandomData randomData randomData = new RandomDataImpl();
    int number = randomData.nextInt(min_val, max_val);
    System.out.println(number);
  }
}

Resultado:

72

Gerar número aleatório usando a classe SecureRandom em Java

A classe SecureRandom pertence ao pacote security do Java que é usado para criar um número aleatório seguro. Aqui, usamos a classe Date para gerar uma semente e, em seguida, o método nextInt() para gerar um inteiro aleatório. Veja o exemplo abaixo.

import java.security.SecureRandom;
import java.util.Date;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    SecureRandom rand = new SecureRandom();
    rand.setSeed(new Date().getTime());
    int randomNum = rand.nextInt((max_val - min_val) + 1) + min_val;
    System.out.println(randomNum);
  }
}

Resultado:

65

Gerar número aleatório usando a classe RandomUtils em Java

Podemos usar a classe RandomUtil da biblioteca apache commons para gerar inteiros aleatórios. O método nextInt() desta classe retorna uma classe inteira. Veja o exemplo abaixo.

import org.apache.commons.lang3.RandomUtils;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    RandomUtils random = new RandomUtils();
    int randomNum = random.nextInt(min_val, max_val);
    System.out.println(randomNum);
  }
}

Resultado:

66

Artigo relacionado - Java Math

Artigo relacionado - Java Number