Java >> Tutoriel Java >  >> Java

Générateur de nombres aléatoires Java | À portée | 5 chiffres | Exemples

La génération de nombres aléatoires est très importante dans certains services applicatifs comme OTP, Random Password. Le générateur de nombres aléatoires Java est facile car Java fournit déjà des méthodes et des classes intégrées.

Différentes façons de générer des nombres aléatoires en Java.

Voici un moyen de Java Random Range.

  • Utilisation de la classe Random – java.util.Random
  • Utilisation de la méthode aléatoire du package Math :Math.random (Remarque - Générer des doubles dans la plage de 0,0 à 1,0 et non des entiers)
  • Classe java.util.concurrent.ThreadLocalRandom

Commençons une méthode par une avec des exemples

Nous verrons l'exemple et quelques explications sur la façon de générer un générateur de nombres aléatoires en Java.

Classe aléatoire – java.util.Random

Dans l'exemple, nous générons des nombres aléatoires entre 1 et 100.

Tout d'abord, il faut importer un package (module) Random puis créer un objet de la classe Random. Exécutez ensuite la boucle for Java 5 fois pour obtenir le nombre 5 fois.

import java.util.Random;

public class RandomNumbers {
    public static void main(String[] args) {
        // create random object
        Random randomObj = new Random();
        //for loop
        for (int i = 1; i < 6; i++) {
            int randomNumber = randomObj.nextInt(100);
            System.out.println(i + " Random No: " + randomNumber);
        }
    }
}

Sortie : 1 numéro aléatoire :27
2 N° aléatoire :90
3 N° aléatoire :68
4 N° aléatoire :41
5 Nombre aléatoire :88

Java Math.Aléatoire

Faites maintenant le même exemple avec la méthode aléatoire du package Math – Math.random.

Mais dans cet exemple, vous obtiendrez un nombre aléatoire en double et vous n'aurez pas besoin d'importer de package.

public class RandomNumbers {

    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(Math.random());
        }
    }
}

Sortie : 0.6476096759285015
0.02079713078539991
0.7415838333842604
0.6114225690043168
0.1259080370215

Classe java.util.concurrent.ThreadLocalRandom

Cette classe est introduite dans Java 1.7 pour générer des nombres aléatoires de type entiers, doubles, booléens, etc.

Voici comment utiliser cette classe pour générer des nombres aléatoires. Vous devez importer un package requis pour accéder à cette classe.

import java.util.concurrent.ThreadLocalRandom;

public class RandomNumbers {
    public static void main(String[] args) {
        // Generate random integers
        int randomInt = ThreadLocalRandom.current().nextInt();
        System.out.println("Random Integers in Java: " + randomInt);

        // Generate Random doubles
        double randomDob = ThreadLocalRandom.current().nextDouble();
        System.out.println("Random Doubles in Java: " + randomDob);

        // Generate random booleans
        boolean randomBool = ThreadLocalRandom.current().nextBoolean();
        System.out.println("Random Booleans in Java: " + randomBool);
    }
}

Sortie : Entiers aléatoires en Java :-752176930
Doubles aléatoires en Java :0,5973833535773254
Booléens aléatoires en Java :true

Générer un nombre aléatoire à 5 chiffres en Java

Utilisez une méthode substring(0, 5) dans une classe Java aléatoire.

Voici un exemple de générateur de nombres aléatoires Java avec 0 inclus et 100 000 exclusif. Puis formatez-le en 5 chiffres en ajoutant zéro.

import java.util.Random;

public class RandomNumbers {
    public static void main(String[] args) {
        Random random = new Random();
        int num = random.nextInt(100000);
        String formatted = String.format("%05d", num);
        System.out.println(formatted);
    }
}

Sortie : 01194

Question :Comment générer un générateur de nombres aléatoires en java sans répétition (pas de doublons) ?

Réponse :Utilisez la structure de données Set et utilisez l'une des méthodes. Vérifiez l'ensemble si le nombre n'y est pas, puis stockez le nombre aléatoire dans le HashSet et imprimez le nombre.

Voir ci-dessous un exemple de générateur de nombres aléatoires java sans répétition ni programme en double.

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class RandomNumbers {
    public static void main(String[] args) {
        Random randomObj = new Random();
        Set set=new HashSet<Integer>();

        for (int i = 1; i <= 3; i++) {
            int randomNumber = randomObj.nextInt(4);
            if (!set.contains(randomNumber)){
                set.add(randomNumber);
                System.out.println(i + " Random No: " + randomNumber);
            }else i--;
        }
    }
}

Sortie : 1 N° aléatoire :3
2 N° aléatoire :1
3 N° aléatoire :2

Question :Comment générer des nombres aléatoires en Java dans la plage ?

Réponse : Dans Java 1.7+, vous pouvez le faire sur une seule ligne en utilisant la classe java.util.concurrent.ThreadLocalRandom. Vérifiez l'exemple ci-dessous de génération de nombres aléatoires en Java dans la plage de 1 à 5.

import java.util.concurrent.ThreadLocalRandom;

public class RandomNumbers {
    public static void main(String[] args) {
        int randomNo = ThreadLocalRandom.current().nextInt(1, 20);
        System.out.println("A Random number between 1 to 20 is: " + randomNo);
    }
}

Sortie : Un nombre aléatoire entre 1 et 20 est :6

Notes annexes :c'est donc le programme Java pour générer des nombres aléatoires si vous avez des doutes et des suggestions, commentez ci-dessous.

De la même manière que vous avez généré un nombre aléatoire en Java, vous pouvez le faire pour la plage aléatoire Java.


Balise Java