從集合中獲取隨機元素的最佳方法是什麼?我聽到的最好的迭代,所以我做了以下內容:從集合中獲取隨機條目
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中可以使用流。
你想用這段代碼實現什麼? – YoungHobbit
上面的代碼只是一個測試,看看最好的方法是什麼。 –
'Collections.shuffle'並獲得第一個(如果你以後不關心集合的順序) – 2016-01-06 16:59:04