Java從List中獲取隨機元素
在List中選取一個隨機的元素是比較常見的應用場景,但是實現起來相對麻煩一點,這裡我們列舉一些再不同場景下高效實現隨機選取元素的方式。
操作
首先要生成一個隨機的下標數,然後通過List.get()方法獲取對應下標的元素。
注意點:下標不能超過List的容量
單個隨機元素
- 使用Random.nextInt(int)方法
public void solution(){
List<Integer> givenList = Arrays.asList(1, 2, 3);
Random rand = new Random();
int randomElement = givenList.get(rand.nextInt(givenList.size()));
}
- 使用Math.random()靜態方法,然後乘以列表的大小,最後轉成int型別的。
public void solution(){
List<Integer> givenList = Arrays.asList(1, 2, 3);
int randomElement = givenList.get((int) (Math.random() * givenList.size()));
}
多執行緒環境
當在多執行緒環境下使用Randome例項的時候,可能導致多個執行緒獲取到相同值的情況,這時我們可以使用ThreadLocalRandom
類
int randomElementIndex
= ThreadLocalRandom.current().nextInt(listSize) % givenList.size();
選取隨機的多個集合元素
有時候,你想獲得隨機的子列元素,可以使用Collections工具類
public void solution(){
List<Integer> givenList = Arrays.asList(1, 2, 3,4,5,6);
Collections.shuffle(givenList);
int randomSeriesLength = 3;
List<Integer> randomSeries = givenList.subList(0, randomSeriesLength);
}
最後
這篇文章,我們探討了不同的從列表中獲取隨機元素的方法,在不同的場景下使用不同的方案,希望對大家有幫助
參考
相關文章
- 如何利用Python隨機從list中挑選一個元素Python隨機
- sample, choices: 從list中隨機選擇無重複的元素隨機
- Java ArrayList 查詢、刪除指定元素;排序;遍歷;隨機獲取元素等常用操作Java排序隨機
- 從Linux核心中獲取真隨機數Linux隨機
- java獲取時間戳和隨機數Java時間戳隨機
- python爬蟲從ip池獲取隨機IPPython爬蟲隨機
- 獲取當前時間戳和隨機數的獲取、Java Random、ThreadLocalRandom、UUID類中的方法應用(隨機數)時間戳隨機JavarandomthreadUI
- O(1) 時間插入、刪除和獲取隨機元素,允許元素重複隨機
- Java之獲取隨機數的4種方法Java隨機
- Python獲取list中指定元素索引的兩種方法Python索引
- 【API】隨機獲取圖片API隨機
- Java foreach 中List移除元素丟擲ConcurrentMJava
- Java集合List隨堂Java
- DevExpress中獲取GridControl排序之後的ListdevExpress排序
- C#怎麼從List集合中隨機取出其中一個值C#隨機
- JavaScript獲取元素在文件中座標JavaScript
- 獲取當前元素在兄弟元素節點中的索引索引
- JS 獲取文件元素JS
- Android 從手機相簿獲取圖片 uri 路徑 從相機獲取照片Android
- LeetCode381. O(1) 時間插入、刪除和獲取隨機元素 - 允許重複LeetCode隨機
- Java基礎之去除List集合中的重複元素Java
- JavaScript獲取滑鼠在元素中的座標JavaScript
- JavaScript獲取元素在陣列中的位置JavaScript陣列
- 求教:Selenium 中怎麼獲取偽類元素,
- 碎片化學習Java(二十七)Java獲取 0 到 9 內的隨機數Java隨機
- JavaScript獲取父元素下子元素節點JavaScript
- 從session中獲取資料Session
- jquery獲取元素節點jQuery
- dom元素操作獲取等
- ArcGIS如何自動獲得隨機取樣點?隨機
- iframe的操作-Js/Jquery獲取iframe中的元素JSjQuery
- 從 falcon api 中獲取資料API
- java獲取本機的ip地址Java
- 獲取List集合物件中某一列屬性值物件
- css 獲取從第n個開始,之後的所有元素CSS
- JavaScript 獲取0-1之間的隨機數JavaScript隨機
- Django Models隨機獲取指定數量資料方法Django隨機
- c++中的查詢list元素C++