Si j'ai un enum comme ceci :
public enum Letter {
A,
B,
C,
//...
}
Quelle est la meilleure façon d'en choisir un au hasard ? Il n'est pas nécessaire que la qualité de la production soit irréprochable, mais une distribution assez égale serait bien.
Je pourrais faire quelque chose comme ça
private Letter randomLetter() {
int pick = new Random().nextInt(Letter.values().length);
return Letter.values()[pick];
}
Mais existe-t-il un meilleur moyen ? J'ai l'impression que c'est quelque chose qui a déjà été résolu auparavant.
0 votes
Qu'est-ce qui ne va pas avec votre solution ? Elle me semble plutôt bonne.
1 votes
@GregS - le problème est que chaque appel à
Letter.values()
doit créer une nouvelle copie du fichier interneLetter
tableau de valeurs.0 votes
Je ne sais pas non plus si vous devez créer un nouvel objet Random à chaque fois que vous exécutez cette fonction.