Java中的隨機(jī)數(shù)Random
一個(gè)用于生成隨機(jī)數(shù)的類
具體用法:
? //創(chuàng)建隨機(jī)數(shù)對(duì)象 ? ? ? ? Random random = new Random(); ? ? ? ? //隨機(jī)產(chǎn)生一個(gè)int類型取值范圍內(nèi)的數(shù)字。 ? ? ? ? int num1 = random.nextInt(); ? ? ? ? System.out.println(num1); ? ? ? ? //產(chǎn)生一個(gè)[0-100]之間的隨機(jī)數(shù) ? ? ? ? int num2 = random.nextInt(101); ? ? ? ? System.out.println(num2);//不包括101
寫一個(gè)不含重復(fù)數(shù)字的隨機(jī)數(shù)組
第一種:
int[] num = new int[5]; ? ? ? ? boolean flag = true; ? ? ? ? Random random = new Random(); ? ? ? ? for (int i = 0; i < num.length; i++) { ? ? ? ? ? ? int a = random.nextInt(5); ? ? ? ? ? ? for (int j = i - 1; j >= 0; j--) {//當(dāng)i == 0 的時(shí)候這一步不執(zhí)行 ? ? ? ? ? ? ? ? if (a == num[j]) { ? ? ? ? ? ? ? ? ? ? flag = false; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? ? if (flag) { ? ? ? ? ? ? ? ? num[i] = a; ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? i--; ? ? ? ? ? ? ? ? flag = true; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? ? ? ? ? System.out.println(Arrays.toString(num));
第一種方法的改進(jìn):
public static void main(String[] args) { ? ? ? ? int[] num = new int[5]; ? ? ? ? Random random = new Random(); ? ? ? ? int index = 0; ? ? ? ? while (index < num.length) { ? ? ? ? ? ? int a = random.nextInt(5); ? ? ? ? ? ? if (contains(num, index, a)) { //把判斷有沒有變成了一個(gè)方法 ? ? ? ? ? ? ? ? num[index++] = a; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? System.out.println(Arrays.toString(num)); ? ? } ? ? public static boolean contains(int[] a, int index, int temp) { ? ? ? ? for (int i = index - 1; i >= 0; i--) { ? ? ? ? ? ? if (temp == a[i]) { ? ? ? ? ? ? ? ? return false; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? return true; ? ? }
第二種:
不推薦這種方法,雖然使用了Arrays
自帶的方法 ,但是這個(gè)方法的除最后一個(gè)元素以外的元素都是排好序的
這種隨機(jī)有點(diǎn)不嚴(yán)謹(jǐn)
public static void main(String[] args) { ? ? ? ? int[] a = new int[5]; ? ? ? ? Random random = new Random(); ? ? ? ? int index = -1; ? ? ? ? while(index < a.length -1){ ? ? ? ? ? ? int b = random.nextInt(5); ? ? ? ? ? ? if(contains(a,b,index)){ ? ? ? ? ? ? ? ? a[++index] = b; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? System.out.println(Arrays.toString(a)); ? ? } ? ? public static boolean contains(int[] a , int b , int index){ ? ? ? ? if (index < 0){ ? ? ? ? ? ? return true; ? ? ? ? } ? ? ? ? ? ? Arrays.sort(a,0,index + 1);//下標(biāo)為[0,index+1)的數(shù)組排序 不包含index+1 ? ? ? ? return Arrays.binarySearch(a,0,index + 1,b) < 0;//二分法查找下標(biāo)為[0,index+1)范圍內(nèi)是否包含b ? ? ? }
到此這篇關(guān)于Java中的隨機(jī)數(shù)Random的文章就介紹到這了,更多相關(guān)隨機(jī)數(shù)Random內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring加載XSD文件發(fā)生錯(cuò)誤的解決方法
這篇文章主要介紹了Spring加載XSD文件發(fā)生錯(cuò)誤的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08java并發(fā)包中CountDownLatch和線程池的使用詳解
這篇文章主要介紹了java并發(fā)包中CountDownLatch和線程池的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02SpringBoot實(shí)現(xiàn)抽獎(jiǎng)算法的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)SpringBoot實(shí)現(xiàn)抽獎(jiǎng)算法,文中的示例代碼簡(jiǎn)潔易懂,具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下2023-06-06詳解spring batch的使用和定時(shí)器Quart的使用
spring Batch是一個(gè)基于Spring的企業(yè)級(jí)批處理框架,它通過(guò)配合定時(shí)器Quartz來(lái)輕易實(shí)現(xiàn)大批量的數(shù)據(jù)讀取或插入,并且全程自動(dòng)化,無(wú)需人員管理2017-08-08Java實(shí)現(xiàn)九宮格的簡(jiǎn)單實(shí)例
這篇文章主要介紹了 Java實(shí)現(xiàn)九宮格的簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06SpringBoot項(xiàng)目微信云托管入門部署實(shí)踐
本文主要介紹了SpringBoot項(xiàng)目微信云托管入門部署實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java-文件File簡(jiǎn)單實(shí)用方法(分享)
下面小編就為大家?guī)?lái)一篇Java-文件File簡(jiǎn)單實(shí)用方法(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08