Générer un nombre aléatoire dans une plage spécifiée en Java

Mohammad Irfan 12 octobre 2023
  1. Générer un nombre aléatoire à l’aide de la classe ThreadLocalRandom en Java
  2. Générer un nombre aléatoire à l’aide de la classe Math en Java
  3. Générer un nombre aléatoire à l’aide de la classe Random en Java
  4. Générer un nombre aléatoire à l’aide de la classe Random en Java
  5. Générer un nombre aléatoire en utilisant la classe Random et IntStream en Java
  6. Générer un nombre aléatoire en utilisant la méthode nextFloat en Java
  7. Générer un nombre aléatoire à l’aide de la classe RandomData en Java
  8. Générer un nombre aléatoire en utilisant la classe SecureRandom en Java
  9. Générer un nombre aléatoire à l’aide de la classe RandomUtils en Java
Générer un nombre aléatoire dans une plage spécifiée en Java

Ce didacticiel explique comment générer un nombre aléatoire dans une plage spécifiée en Java.

Il existe plusieurs manières de générer un nombre aléatoire en Java, comme la méthode nextInt() de la classe ThreadLocalRandom, la méthode random() de la classe Math, la méthode nextInt() du Classe Random, la méthode ints() de la classe Random, la méthode nextFloat() de la classe Random et la classe RandomUtil, etc.

Générer un nombre aléatoire à l’aide de la classe ThreadLocalRandom en Java

Le package concurrent Java fournit une classe ThreadLocalRandom qui a la méthode nextInt(). Cette méthode peut générer un entier aléatoire dans la plage spécifiée. Voir l’exemple ci-dessous.

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);
  }
}

Production:

Value in double: 12.9
Value in int: 12

Générer un nombre aléatoire à l’aide de la classe Math en Java

La classe Java Math peut être utilisée pour générer un nombre aléatoire dans la plage spécifiée. Ici, nous utilisons la méthode random() de la classe Math pour obtenir un nombre aléatoire. Voir l’exemple ci-dessous.

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);
  }
}

Production:

Id: 1212
Name: Samre

Générer un nombre aléatoire à l’aide de la classe Random en Java

La classe Random de Java peut générer un entier aléatoire dans la plage spécifiée en utilisant la méthode nextInt(), qui renvoie une valeur entière. Voir l’exemple ci-dessous.

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);
  }
}

Production:

Id: 1212
Name: Samre

Générer un nombre aléatoire à l’aide de la classe Random en Java

C’est une autre solution pour obtenir un entier aléatoire dans la plage spécifiée. Ici, nous utilisons la méthode nextInt() de la classe Random avec différents paramètres. Voir l’exemple ci-dessous.

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);
  }
}

Production:

Random Number: 75

Générer un nombre aléatoire en utilisant la classe Random et IntStream en Java

Ici, nous utilisons la méthode ints() de la classe Random qui renvoie un flux de nombres aléatoires. Nous utilisons la méthode forEach() pour afficher tous les nombres entiers aléatoires générés par la méthode ints(). Voir l’exemple ci-dessous.

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);
  }
}

Production:

94
35
90
74
47

Générer un nombre aléatoire en utilisant la méthode nextFloat en Java

La classe Random fournit une méthode nextFloat() pour générer un nombre aléatoire de type float. Si nous voulons obtenir un nombre aléatoire de type flottant, cette méthode est utile. Voir l’exemple ci-dessous.

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);
  }
}

Production:

71.88764

Générer un nombre aléatoire à l’aide de la classe RandomData en Java

Si vous travaillez avec la bibliothèque apache commons, utilisez la classe RandomData. Cette classe fournit une méthode nextInt() qui renvoie une valeur entière. Nous pouvons utiliser cette méthode pour générer des entiers aléatoires dans la plage spécifiée. Voir l’exemple ci-dessous.

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);
  }
}

Production:

72

Générer un nombre aléatoire en utilisant la classe SecureRandom en Java

La classe SecureRandom appartient au package security de Java qui permet de créer un nombre aléatoire sécurisé. Ici, nous utilisons la classe Date pour générer une graine puis la méthode nextInt() pour générer un entier aléatoire. Voir l’exemple ci-dessous.

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);
  }
}

Production:

65

Générer un nombre aléatoire à l’aide de la classe RandomUtils en Java

Nous pouvons utiliser la classe RandomUtil de la bibliothèque apache commons pour générer des entiers aléatoires. La méthode nextInt() de cette classe retourne une classe entière. Voir l’exemple ci-dessous.

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);
  }
}

Production:

66

Article connexe - Java Math

Article connexe - Java Number