11
votes

Comment randomiser les éléments Enum?

dire que vous avez un Enum avec des éléments xxx

et souhaiterions choisir une couleur de manière aléatoire de celle-ci.

I Mettez les couleurs dans un xxx

puis cueille une couleur aléatoire comme: xxx

tout cela (tout en fonctionnant bien) semble inutilement compliqué. Y a-t-il un moyen plus simple de choisir un élément enum aléatoire?


3 commentaires

En tant que votre collègue développeur pour un nombre aléatoire? ... non désolé.


Question connexe: Stackoverflow.com/Questtions/5269250 / ...


Je pense que celui-ci est plus proche du problème à la main (indice: recherchez la réponse de Trashgod): Stackoverflow.com/Questtions/1972392/...


6 Réponses :


0
votes

Vous pouvez associer un ID entier à chaque couleur Enum et avoir une méthode de la valeur (INT ID) qui renvoie la couleur correspondante. Cela vous aidera à vous débarrasser de la liste ..

Tiberiu


0 commentaires

8
votes
LightColor random = LightColor.values()[(int)(Math.random()*(LightColor.values().length))];

0 commentaires

5
votes

Utilisez Enum.Values ​​() Pour que tout disponible Options et utilisez le aléatoire.nextint () Méthode spécifiant la valeur max. Par exemple: xxx

Ceci peut alors être appelé comme tel: xxx


1 commentaires

+1 pour suggérer aléatoire.nexint () au lieu de multiplier par taille



3
votes

Ceci devrait être simplement facile comme indiqué ci-dessous

LightColor[] values = LightColor.values();
LightColor value = values[(int) (Math.random() * 3)];


0 commentaires

25
votes

Les énumes de Java sont en fait des objets entièrement capables. Vous pouvez ajouter une méthode à la déclaration Enum xxx

qui vous permettrait de l'utiliser comme ceci: xxx < / p>


1 commentaires

Merci!, Ça marche comme un charme !!!



0
votes

Alors, lisez la réponse de Kowser, je suis venu avec quelque chose ici. Compte tenu d'une chatcolor Enum contenant des couleurs différentes, vous pouvez effectuer ce qui suit: xxx

et même avoir une liste noire.


0 commentaires