Il s'agit de la méthode la plus simple pour générer des valeurs aléatoires uniques dans une plage ou à partir d'un tableau .
Dans cet exemple, j'utiliserai un tableau prédéfini, mais vous pouvez également adapter cette méthode pour générer des nombres aléatoires. Tout d'abord, nous allons créer un exemple de tableau à partir duquel récupérer nos données.
- Générez un nombre aléatoire et ajoutez-le au nouveau tableau.
- Générez un autre nombre aléatoire et vérifiez s'il est déjà stocké dans le nouveau tableau.
- Sinon, ajoutez-le et continuez
- sinon réitérez l'étape.
ArrayList<Integer> sampleList = new ArrayList<>();
sampleList.add(1);
sampleList.add(2);
sampleList.add(3);
sampleList.add(4);
sampleList.add(5);
sampleList.add(6);
sampleList.add(7);
sampleList.add(8);
Maintenant, à partir du, sampleList
nous allons produire cinq nombres aléatoires uniques.
int n;
randomList = new ArrayList<>();
for(int i=0;i<5;i++){
Random random = new Random();
n=random.nextInt(8);
if(!randomList.contains(sampleList.get(n)))
randomList.add(sampleList.get(n));
else
i--;
}
C'est conceptuellement très simple. Si la valeur aléatoire générée existe déjà, nous réitérerons l'étape. Cela continuera jusqu'à ce que toutes les valeurs générées soient uniques.
Si vous avez trouvé cette réponse utile, vous pouvez la voter car son concept est beaucoup plus simple que les autres réponses .
1..100
(il existe des algorithmes célèbres pour cela), mais arrêtez-vous après avoir déterminé les premiersn
éléments.