从集合中选取随机元素

2022-08-31 06:10:00

如何从集合中选取随机元素?我对从Java中的HashSet或LinkedHashSet中选择随机元素特别感兴趣。也欢迎其他语言的解决方案。


答案 1
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++;
}

答案 2

一个有点相关的你知道吗:

java.util.Collections中有一些有用的方法来洗牌整个集合:Collections.shuffle(List<?>)Collesits.shuffle(List<?> list,Random rnd)。