java中random的用法小結(jié)
java中存在兩個(gè)隨機(jī)函數(shù),它們分別來(lái)自java.long.Math.random()和 java.util.Random();其中前者的適用范圍比較小,完全可以被后者取代。
一、java.lang.Math.random()方法的用法
①、方法類型:
public static double random();
此方法是一個(gè)無(wú)參,double類型返回值的公開(kāi)靜態(tài)方法。
返回一個(gè)大于0的double類型數(shù)據(jù),該值大于等于0.0且小于1.0,返回的是一個(gè)偽隨機(jī)選擇數(shù),在該范圍內(nèi)(幾乎)均勻分布。
例如:
public class TestRandom{ public static void main(String[] args){ int sum=0; while(true){ float a=(float)Math.random(); System.out.println(a); sum++; if(sum==10) break; } } }
二、 java.util.Random類用法
①、該類的構(gòu)造方法:
Random():構(gòu)造一個(gè)無(wú)參的隨機(jī)數(shù)生成器。使用系統(tǒng)時(shí)間的毫秒作為默認(rèn)種子。
Random(long seed):使用 long數(shù)據(jù)類型的種子構(gòu)造一個(gè)隨機(jī)數(shù)生成器。
②方法摘要:
boolean nextBoolean():返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的均勻分布的 boolean值。
double nextDouble():返回下一個(gè)偽隨機(jī)數(shù),它是
取自此隨機(jī)數(shù)生成器序列的、在 0.0 和 1.0 之間均勻分布的 double 值。
float nextFloat():返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在 0.0 和 1.0 之間均勻分布的 float 值。
int nextInt():返回下一個(gè)偽隨機(jī)數(shù),它是此隨機(jī)數(shù)生成器的序列中均勻分布的 int 值.
int nextInt(int n):返回一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在 0(包括)和指定值n(不包括)之間均勻分布的 int 值。
long nextLong():返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的均勻分布的 long 值。
void setSeed(long seed):使用單個(gè) long 種子設(shè)置此隨機(jī)數(shù)生成器的種子。
注意:如果用相同的種子創(chuàng)建兩個(gè) Random 實(shí)例,則對(duì)每個(gè)實(shí)例進(jìn)行相同的方法調(diào)用序列,它們將生成并返回相同的數(shù)字序列。
例如:
public class TestRandom{ ?? ?public static void main(String[] args){ ?? ??? ?int sum=0;?? ??? ? ?? ??? ?java.util.Random random=new java.util.Random(); ?? ??? ?for(int i=0;i<10;i++){ ?? ??? ??? ?int a=random.nextInt(10); ?? ??? ??? ?System.out.print(a+" ?"); ?? ??? ?} ?? ??? ?System.out.println(""); ?? ??? ?for(int i=0;i<10;i++){ ?? ??? ??? ?int a=random.nextInt(); ?? ??? ??? ?System.out.println(a); ?? ??? ?} ?? ??? ?System.out.println(""); ?? ??? ?for(int i=0;i<10;i++){ ?? ??? ??? ?double a=random.nextDouble(); ?? ??? ??? ?System.out.println(a); ?? ??? ?} ?? ??? ?System.out.println(""); ?? ??? ?for(int i=0;i<10;i++){ ?? ??? ??? ?boolean a=random.nextBoolean(); ?? ??? ??? ?System.out.println(a); ?? ??? ?} ?? ??? ?System.out.println(""); ?? ?} }
結(jié)果為:
到此這篇關(guān)于java中random的用法詳解的文章就介紹到這了,更多相關(guān)java中random用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)例分析Java Class的文件結(jié)構(gòu)
今天把之前在Evernote中的筆記重新整理了一下,發(fā)上來(lái)供對(duì)java class 文件結(jié)構(gòu)的有興趣的同學(xué)參考一下2013-04-04消息隊(duì)列-kafka消費(fèi)異常問(wèn)題
這篇文章主要給大家介紹了關(guān)于kafka的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07Java8中的LocalDateTime你會(huì)使用了嗎
LocalDateTime?是?Java?8?中日期時(shí)間?API?提供的一個(gè)類,在日期和時(shí)間的表示上提供了更加豐富和靈活的支持,本文就來(lái)講講LocalDateTime的一些具體使用方法吧2023-05-05java利用StringTokenizer分割字符串的實(shí)現(xiàn)
利用java.util.StringTokenizer的方法,可以將一個(gè)字符串拆分為一系列的標(biāo)記,本文就來(lái)介紹一下java利用StringTokenizer分割字符串的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10詳解Java中格式化日期的DateFormat與SimpleDateFormat類
DateFormat其本身是一個(gè)抽象類,SimpleDateFormat 類是DateFormat類的子類,一般情況下來(lái)講DateFormat類很少會(huì)直接使用,而都使用SimpleDateFormat類完成,下面我們具體來(lái)看一下兩個(gè)類的用法:2016-05-05淺談java中String StringBuffer StringBuilder的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談java中String StringBuffer StringBuilder的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06