回答
int len = list.size();
Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(len);
這只是得到一個隨機索引。使用'list.get(randomInt)'得到實際值(所有其他答案都已經說明過)。 – dacwe
同意。問題是選擇了一個隨機元素,所以我停在那裏。感謝您的澄清。 –
如果你只需要一個元素,你可以使用Random類來生成(僞)隨機值(如你在你的問題中寫道):
E element = list.get(new Random().nextInt(list.size()));
記住LinkedList.get(index)
複雜度爲O(n)的操作,正如在評論中指出的那樣,最好使用ArrayList
來達到這個目的。
如果你想洗牌整個陣列可以使用Collections API這樣的:
Collections.shuffle(list);
獲取列表長度size()
,0和大小-1之間創建一個隨機數使用get(index)
來檢索具有該索引的元素。
您也可以使用Collections.shuffle
隨機洗牌List
並每次選擇第一個元素,雖然這可能是一個昂貴的計算明智。只是另一個你應該知道的技巧。 :-)
final List<String> lst = Arrays.asList("a", "b", "c");
Collections.shuffle(lst);
final String rndStr = lst.get(0);
雖然你可以做到這一點(如果你需要多個元素,這是一種有用的技術),但與僅僅查看元素相比,它相當昂貴。 –
同意,因此我在帖子中提到這種技術在計算上花費很大。 –
如果您確實只需要一個元素,請使用dacwe的解決方案。如果您需要多個值(例如模擬紙牌遊戲,賓果等)時,您可以使用java.util.Collections.shuffle(list);
,併爲您需要的每個元素撥打list.remove(0);
。
- 1. 如何從列表中隨機選擇元素?
- 2. 如何從numpy列表中隨機選擇n個元素?
- 3. Ruby從選擇列表中選擇隨機元素與optgroup
- 4. 如何從列表中選擇隨機元素排除某些列表?
- 5. 隨機從列表中選擇x個元素
- 6. C#從列表中選擇隨機元素
- 7. 以概率從列表中選擇隨機元素
- 8. 從Selenium Webdriver的列表中選擇一個隨機元素Java
- 9. 隨機選擇從列表
- 10. 選擇從列表中選擇多個隨機元素在Java中
- 11. 如何從列表中隨機選擇一個元組?
- 12. 從數組列表中隨機選擇5個元素而不重複元素
- 13. 選擇隨機JSON元素
- 14. Android的多選列表中選擇上滾動隨機元素
- 15. 如何從列表中選擇一個隨機元素<action>
- 16. 如何從數組中選擇一個隨機元素
- 17. 如何從數組中選擇隨機元素?
- 18. 如何從不同的元素中隨機選擇
- 19. 如何從coredata中隨機選擇一個元素swift
- 20. 如何從numpy.ndarray中隨機選擇一些非零元素?
- 21. 從數組的特定元素中選擇隨機元素
- 22. 從下拉列表中隨機選擇?
- 23. 從Java列表中隨機選擇[]
- 24. 從列表中選擇隨機段落
- 25. Python不從列表中隨機選擇
- 26. 從數組列表中隨機選擇
- 27. 從列表中選擇隨機短語
- 28. 從下拉列表中隨機選擇?
- 29. 在條件屬性列表中選擇隨機元素
- 30. 在R列表中選擇隨機元素?
'ArrayList'可能是更好的選擇。從LinkedList獲取一個隨機元素是O(N)成本(因爲你必須從第一個元素遍歷到所選元素)。一個'ArrayList'是O(1)來訪問一個特定的元素。 –
是的..我的代碼現在運行速度比以前快了近80%。謝謝!! – user482594