本篇文章展示了java生成隨機(jī)不重復(fù)數(shù)的方法具體操作,代碼簡明扼要容易理解,絕對能讓你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)主要業(yè)務(wù)有網(wǎng)站營銷策劃、成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號開發(fā)、成都微信小程序、H5響應(yīng)式網(wǎng)站、程序開發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務(wù)的過程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、成都全網(wǎng)營銷推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。
根據(jù)min和max,生成n個不重復(fù)的隨機(jī)數(shù)。(注:范圍[min,max],n <= (max - min +1))
思路:
0)、把從min到max的可能出現(xiàn)的數(shù)字全部放進(jìn)一個候選List;
1)、隨機(jī)生成索引index(0 <= index <= (list.size()-1));
2)、根據(jù)index從List中取出一個數(shù),list.get(index),并移除這個元素;
代碼如下:
import java.util.ArrayList; import java.util.List; import java.util.Random; public class MyRandom { /** * 根據(jù)min和max隨機(jī)生成一個范圍在[min,max]的隨機(jī)數(shù),包括min和max * @param min * @param max * @return int */ public int getRandom(int min, int max){ Random random = new Random(); return random.nextInt( max - min + 1 ) + min; } /** * 根據(jù)min和max隨機(jī)生成count個不重復(fù)的隨機(jī)數(shù)組 * @param min * @param max * @param count * @return int[] */ public int[] getRandoms(int min, int max, int count){ int[] randoms = new int[count]; List<Integer> listRandom = new ArrayList<Integer>(); if( count > ( max - min + 1 )){ return null; } // 將所有的可能出現(xiàn)的數(shù)字放進(jìn)候選list for(int i = min; i <= max; i++){ listRandom.add(i); } // 從候選list中取出放入數(shù)組,已經(jīng)被選中的就從這個list中移除 for(int i = 0; i < count; i++){ int index = getRandom(0, listRandom.size()-1); randoms[i] = listRandom.get(index); listRandom.remove(index); } return randoms; } }
Java Math.random() 方法用于返回一個隨機(jī)數(shù),隨機(jī)數(shù)范圍為 0.0 =< Math.random < 1.0。
以上就是java生成隨機(jī)不重復(fù)數(shù)的方法,代碼示例簡單明了,如果在日常工作遇到此問題。通過這篇文章,希望你能有所收獲,更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章題目:java生成隨機(jī)不重復(fù)數(shù)的方法
分享地址:http://jinyejixie.com/article46/pgeohg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、Google、云服務(wù)器、響應(yīng)式網(wǎng)站、營銷型網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)