Approche Java pour générer des nombres aléatoires non répétitifs
Créer un ensemble de nombres aléatoires uniques en Java peut être un défi. Considérons le scénario suivant dans lequel nous devons remplir un tableau avec 10 000 entiers non répétitifs allant de 0 à 9999.
L'extrait de code suivant tente de résoudre ce problème à l'aide de la classe Random intégrée de Java :
import java.util.Random; public class Sort { public static void main(String[] args) { int[] nums = new int[10000]; Random randomGenerator = new Random(); for (int i = 0; i < nums.length; ++i) { nums[i] = randomGenerator.nextInt(10000); } } }
Cependant, ce code peut produire des nombres en double en raison du risque de collisions lors de l'utilisation de l'opération modulo pour mapper le nombre aléatoire à la plage souhaitée. Pour garantir des numéros uniques, nous pouvons exploiter la classe Collections de Java.
Solution utilisant Java Collections.shuffle()
L'approche préférée pour générer des nombres aléatoires non répétitifs en Java consiste à utiliser la méthode Collections.shuffle(). Voici comment cela fonctionne :
Par exemple, l'extrait de code suivant illustre cette méthode :
public static void main(String[] args) { Integer[] arr = new Integer[1000]; for (int i = 0; i < arr.length; i++) { arr[i] = i; } Collections.shuffle(Arrays.asList(arr)); System.out.println(Arrays.toString(arr)); }
Cette approche garantit que chaque nombre du tableau est unique et répond à l'exigence de générer des nombres aléatoires non répétitifs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!