web-dev-qa-db-fra.com

Élément aléatoire du tableau de chaînes

J'ai un tableau de chaînes:

String[] fruits = {"Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato"};

et j'obtiens un élément aléatoire de ceci en:

String random = (fruits[new Random().nextInt(fruits.length)]);

maintenant, je veux obtenir le nombre auquel Apple est présent lorsque je clique sur le bouton pour obtenir des fruits aléatoires, comme lorsque j'appuie sur le bouton Randon, cela me donne Banana..et devrait également me donner cet élément le numéro est 3

Je reçois l'élément mais j'ai du mal à obtenir le numéro de l'élément, alors s'il vous plaît, aidez-moi

29
user1817558

Il suffit de stocker l'index généré dans une variable, puis d'accéder au tableau à l'aide de cette variable:

int idx = new Random().nextInt(fruits.length);
String random = (fruits[idx]);

P.S. Je n'aime généralement pas générer un nouvel objet Random par randoization - je préfère utiliser un seul Random dans le programme - et le réutiliser. Cela me permet de reproduire facilement une séquence problématique si je trouve plus tard un bug dans le programme.

Selon cette approche, j'aurai une variable Random r quelque part, et je vais simplement utiliser:

int idx = r.nextInt(fruits.length)

Cependant, votre approche est également correcte, mais vous pourriez avoir du mal à reproduire une séquence spécifique si vous en avez besoin plus tard.

67
amit