Si tengo una enumeración de esta manera:Java: ¿Elige un valor aleatorio de una enumeración?
public enum Letter {
A,
B,
C,
//...
}
¿Cuál es la mejor manera de elegir uno al azar? No es necesario que sea de calidad de producción a prueba de balas, pero una distribución bastante uniforme sería agradable.
que podía hacer algo como esto
private Letter randomLetter() {
int pick = new Random().nextInt(Letter.values().length);
return Letter.values()[pick];
}
Pero hay una manera mejor? Siento que esto es algo que ya ha sido resuelto.
lo que crees que es malo en su solución? Se ve bastante bien para mí. –
@GregS: el problema es que cada llamada a 'Letter.values ()' tiene que crear una nueva copia de la matriz de valores 'Letter' interna. –
maldición, solo iba a hacer la misma pregunta. nice one (+1) –