Java ArrayList如何實現生成不重復隨機數
在此之前我使用Java的數組實現了產生N-M之間的不重復的隨機數,下面是使用數列ArrayList實現同樣的功能,代碼如下:
/**
* 隨機生成 N--M,N個不重復隨機數 使用ArrayList
*
* @param startRange 起始數字
* @param endRange 終止數字
* @param count 個數
*/
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;
}
這個實現的原理和使用數組基本一致,但是需要注意的幾點,我這里是使用的一個返回序列,參數只有起始值、終值和個數,然后定義了一個ArrayList數列,使用數列的add方法,接收每一個產生的隨機數,并使用For循環(huán)進行判斷是否重復,如果重復外循環(huán) i -- ,但是這里需要注意的是:此時ArrayList里面已經存放了當前的重復的值了,所以不能只用 i --,還需要使用梳理的remove方法將此不符合條件的數移除,這里是需要注意的,如果不寫著一句,在小的范圍內生成的隨機數很可能會出現死循環(huán)。
下面是成功運行的截圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring MVC簡介_動力節(jié)點Java學院整理
Spring MVC屬于SpringFrameWork的后續(xù)產品,已經融合在Spring Web Flow里面。今天先從寫一個Spring MVC的HelloWorld開始,讓我們看看如何搭建起一個Spring mvc的環(huán)境并運行程序,感興趣的朋友一起學習吧2017-08-08

