Java ArrayList如何實現(xiàn)生成不重復隨機數(shù)
在此之前我使用Java的數(shù)組實現(xiàn)了產(chǎn)生N-M之間的不重復的隨機數(shù),下面是使用數(shù)列ArrayList實現(xiàn)同樣的功能,代碼如下:
/** * 隨機生成 N--M,N個不重復隨機數(shù) 使用ArrayList * * @param startRange 起始數(shù)字 * @param endRange 終止數(shù)字 * @param count 個數(shù) */ public static ArrayList<Integer> getRandom(int startRange, int endRange, int count) { ArrayList<Integer> arr = new ArrayList<>(); for (int i = 0; i < count; i++) { arr.add(((int) (Math.random() * (endRange - startRange + 1) + startRange))); for (int j = 0; j < i; j++) {if (arr.get(i) == arr.get(j)) { arr.remove(i); i--; break;} } } return arr; }
這個實現(xiàn)的原理和使用數(shù)組基本一致,但是需要注意的幾點,我這里是使用的一個返回序列,參數(shù)只有起始值、終值和個數(shù),然后定義了一個ArrayList數(shù)列,使用數(shù)列的add方法,接收每一個產(chǎn)生的隨機數(shù),并使用For循環(huán)進行判斷是否重復,如果重復外循環(huán) i -- ,但是這里需要注意的是:此時ArrayList里面已經(jīng)存放了當前的重復的值了,所以不能只用 i --,還需要使用梳理的remove方法將此不符合條件的數(shù)移除,這里是需要注意的,如果不寫著一句,在小的范圍內(nèi)生成的隨機數(shù)很可能會出現(xiàn)死循環(huán)。
下面是成功運行的截圖:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. Python sorted排序方法如何實現(xiàn)2. Python基于requests實現(xiàn)模擬上傳文件3. ASP.NET MVC實現(xiàn)橫向展示購物車4. windows服務器使用IIS時thinkphp搜索中文無效問題5. python利用opencv實現(xiàn)顏色檢測6. Python文本文件的合并操作方法代碼實例7. Python 中如何使用 virtualenv 管理虛擬環(huán)境8. 通過CSS數(shù)學函數(shù)實現(xiàn)動畫特效9. asp讀取xml文件和記數(shù)10. Python獲取B站粉絲數(shù)的示例代碼
