2010-10-26 9 views
-1

Je le sais pour les entiers normaux, mais existe-t-il pour des indices?Générer un index aléatoire pour un tableau

Random dice = new Random(); 
int n = dice.nextInt(6); 
System.out.println(n); 
+3

ce qui est un entier normal? Quels sont les indices? –

+1

pouvez-vous élaborer .. –

+2

Je ne comprends pas vraiment votre question. Un index de tableau est juste un int, donc vous pouvez utiliser ces nombres aléatoires comme index de tableau sans problème. – fresskoma

Répondre

11

Que voulez-vous dire? Les indices de tableau sont des nombres normaux, donc vous pouvez facilement faire

String names[] = { "One", "Two", "Three", "Four", "Five", "Six" }; 
Random Dice = new Random(); 
int n = Dice.nextInt(6); 
System.out.println(names[n]); 

Ou voulez-vous dire une classe Iterator aléatoire? Google est votre ami ici, this est le premier succès que je reçois.

3

Pour générer un index aléatoire pour someArray vous

int index = new Random().nextInt(someArray.length); 

nextInt(n) retourne un nombre compris entre 0 (inclus) et n (exclusive) qui est la raison pour laquelle someArray.length est donnée comme argument.

0

Une autre solution serait:

int randomElement = yourArray[Math.random()*yourArray.length]; 

Math.random() génère un nombre aléatoire entre 0 et 1. Si vous multipliez ce nombre par la longueur de votre tableau, vous obtiendrez un index aléatoire pour la tableau.

Par exemple: Si Math.random() généré 0,2 et votre tableau a une longueur de 10, vous obtiendrez un indice de 2.

+0

Ne fais pas ça. La classe Random le résout déjà et garantit une distribution «paire». – Jorn

+1

Vous devez ajouter Math.floor pour que cela fonctionne. – Cephalopod

+0

Merci d'avoir commenté ma réponse. C'est comme cela que je l'ai fait pendant des années, alors c'est bon de savoir qu'il existe une autre option, meilleure. – Andrew

Questions connexes