Java ArrayList如何實現(xiàn)生成不重復(fù)隨機數(shù)
在此之前我使用Java的數(shù)組實現(xiàn)了產(chǎn)生N-M之間的不重復(fù)的隨機數(shù),下面是使用數(shù)列ArrayList實現(xiàn)同樣的功能,代碼如下:
/** * 隨機生成 N--M,N個不重復(fù)隨機數(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)進行判斷是否重復(fù),如果重復(fù)外循環(huán) i -- ,但是這里需要注意的是:此時ArrayList里面已經(jīng)存放了當(dāng)前的重復(fù)的值了,所以不能只用 i --,還需要使用梳理的remove方法將此不符合條件的數(shù)移除,這里是需要注意的,如果不寫著一句,在小的范圍內(nèi)生成的隨機數(shù)很可能會出現(xiàn)死循環(huán)。
下面是成功運行的截圖:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
maven中profile動態(tài)打包不同環(huán)境配置文件的實現(xiàn)
開發(fā)項目時會遇到這個問題:開發(fā)環(huán)境,測試環(huán)境,生產(chǎn)環(huán)境的配置文件不同, 打包時經(jīng)常要手動更改配置文件,本文就來介紹一下maven中profile動態(tài)打包不同環(huán)境配置文件的實現(xiàn),感興趣的可以了解一下2023-10-10SpringMVC將請求和響應(yīng)的數(shù)據(jù)轉(zhuǎn)換為JSON格式的幾種方式
這篇文章主要給大家介紹餓了SpringMVC將請求和響應(yīng)的數(shù)據(jù)轉(zhuǎn)換為JSON格式的幾種方式,文中通過代碼示例和圖文結(jié)合給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2023-11-11Java線性結(jié)構(gòu)中棧、隊列和串的基本概念和特點詳解
前幾天小編給大家介紹了Java線性結(jié)構(gòu)中的鏈表,除了鏈表這種結(jié)構(gòu)之外,實際上還有棧、隊列、串等結(jié)構(gòu),那么這些結(jié)構(gòu)又有哪些特點呢,本文就給大家詳細的介紹一下,感興趣的小伙伴跟著小編一起來看看吧2023-07-07java 方法泛型入?yún)和String的重載關(guān)系詳解
這篇文章主要介紹了java 方法泛型入?yún)和String的重載關(guān)系詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02Spring Cloud基于zuul實現(xiàn)網(wǎng)關(guān)過程解析
這篇文章主要介紹了Spring Cloud基于zuul實現(xiàn)網(wǎng)關(guān)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12Java圖形界面之JFrame,JLabel,JButton詳解
這篇文章主要介紹了Java圖形界面之JFrame、JLabel、JButton詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04