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中隨機選擇無重複的元素隨機
- python 切片獲取list、tuple中的元素Python
- Java ArrayList 查詢、刪除指定元素;排序;遍歷;隨機獲取元素等常用操作Java排序隨機
- java獲取時間戳和隨機數Java時間戳隨機
- 從Linux核心中獲取真隨機數Linux隨機
- PHP獲取隨機數PHP隨機
- Random獲取隨機數random隨機
- 從oracle表中隨機取記錄,產生隨機數和隨機字串Oracle隨機字串
- Java之獲取隨機數的4種方法Java隨機
- python爬蟲從ip池獲取隨機IPPython爬蟲隨機
- 獲取當前時間戳和隨機數的獲取、Java Random、ThreadLocalRandom、UUID類中的方法應用(隨機數)時間戳隨機JavarandomthreadUI
- O(1) 時間插入、刪除和獲取隨機元素,允許元素重複隨機
- javascript中獲取元素尺寸JavaScript
- javascript隨機從陣列中選出一個元素JavaScript隨機陣列
- js隨機從陣列中取資料JS隨機陣列
- 獲取兩個數之間的隨機數-java隨機Java
- 【API】隨機獲取圖片API隨機
- 使用SQL語句從資料庫一個表中隨機獲取資料SQL資料庫隨機
- Python獲取list中指定元素索引的兩種方法Python索引
- MATLAB獲取隨機數——randMatlab隨機
- jQuery在元素集合中獲取第N個元素jQuery
- jQuery如何獲取iframe中的元素jQuery
- 獲取棧中任意位置的元素
- Java集合List隨堂Java
- C#怎麼從List集合中隨機取出其中一個值C#隨機
- js獲取元素的方法(獲取html元素的方法)JSHTML
- javascript在iframe子元素中獲取父視窗元素JavaScript
- JavaScript獲取元素在文件中座標JavaScript
- Java獲取本機IPJava
- Java實現從IP和埠列表List獲取分離的IP和埠值Java
- Java foreach 中List移除元素丟擲ConcurrentMJava
- 表中隨機取資料隨機
- Android 從手機相簿獲取圖片 uri 路徑 從相機獲取照片Android
- 獲取當前元素在兄弟元素節點中的索引索引
- java 無重複取隨機數Java隨機
- 從session中獲取資料Session
- JS 獲取文件元素JS