gpt4 book ai didi

java - 从集合中获取随机条目

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:20 24 4
gpt4 key购买 nike

从集合中获取随机元素的最佳方法是什么?我听说过最好的迭代,所以我做了以下工作:

    Collection<Integer> c = new HashSet<Integer>();
Random r = new Random();
for (int i = 0; i < 100000; i++){
c.add(r.nextInt());
}

Iterator<Integer> i = c.iterator();
int random = r.nextInt(c.size());
int num = 0;
int count = 1;
while(i.hasNext()){
num = i.next();
if (count == random){
break;
}
count++;
}
System.out.println(num);

据我所知,它运行良好,只需要几毫秒即可完成。然而,我被告知上述内容使问题过于复杂化。我知道您可以将集合转换为数组,或者在 Java 8 中您可以使用流。

最佳答案

放弃集合;该界面不够灵活,无法让您通过索引选择元素。

放弃HashSet集合通常不支持随机索引。

您需要使用List,并利用 Collections#shuffle完成您感兴趣的事情。

关于java - 从集合中获取随机条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com