Elegir un elemento aleatorio de un conjunto
¿Cómo elijo un elemento aleatorio de un conjunto? Estoy particularmente interesado en elegir un elemento aleatorio de un HashSet o LinkedHashSet, en Java.
Aceptado
int size = myHashSet.size();
int item = new Random().nextInt(size); // In real life, the Random object should be rather more shared than this
int i = 0;
for(Object obj : myhashSet)
{
if (i == item)
return obj;
i++;
}
Un ¿Sabías que algo relacionado?
Existen métodos útiles java.util.Collections
para mezclar colecciones enteras: Collections.shuffle(List<?>)
y Collections.shuffle(List<?> list, Random rnd)
.