java生成隨機數(shù)的常用方法分析
本文實例講述了java生成隨機數(shù)的常用方法。分享給大家供大家參考,具體如下:
前因:
經(jīng)常性的,測試一些功能時都需要造一些假數(shù)據(jù),每次都上網(wǎng)來查一下怎么生成隨機數(shù)。這回我把查到的方法自己整理一下,下次在用不用到處找了。
生成隨機數(shù)的幾種方法:
1. 使用Math.random()生成隨機數(shù)
直接貼幾個小方法
/**
* 獲取0.0-1.0之間的隨機小數(shù)
*/
private double test1() {
double num = Math.random();
return num;
}
/**
* 獲取兩個數(shù)之間的隨機小數(shù)
*/
private double test2(int min, int max) {
return min + Math.random() * (max - min);
}
/**
* 獲取兩個數(shù)之間的隨機整數(shù)
*/
private int test3(int min, int max) {
return (int) (min + Math.random() * (max - min));
}
2. 使用java.util.Random類生成隨機數(shù)
簡單介紹類中的幾個方法
方法:
public int nextInt() :隨機生成一個int型數(shù)值
public int nextInt(int n) :隨機生成一個 >=0 并且 <n 的int型數(shù)值,要求n>0
public long nextLong() :隨機生成一個long型數(shù)值
public float nextFloat() :隨機生成一個float型數(shù)值
public double nextDouble() :隨機生成一個double型數(shù)值
public double nextGaussian() :隨機生成一個符合正態(tài)分布的double型數(shù)值,數(shù)值基本在0左右搖擺,有人做了200萬次循環(huán),驗證了值在-6~6之間
public boolean nextBoolean() :隨機生成一個boolean類型的值
構(gòu)造:
public Random()
public Random(long seed)
問:seed是干嘛用的?
seed 是 Random 生成隨機數(shù)時使用的參數(shù)。
無參構(gòu)造函數(shù)每次都使用當(dāng)前時間作為種子,隨機性更強。
而含參的構(gòu)造函數(shù)其實是偽隨機,更有可預(yù)見性。
3. 使用System.currentTimeMillis()取模
比如想取1000以內(nèi)的隨機數(shù),就System.currentTimeMillis()%1000。
PS:這里再為大家提供幾款功能類似的在線工具供大家參考:
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
在線隨機字符/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password
高強度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Springboot獲取文件內(nèi)容如何將MultipartFile轉(zhuǎn)File
本文給大家介紹Springboot獲取文件內(nèi)容,將MultipartFile轉(zhuǎn)File方法,本文結(jié)合示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-01-01
Springboot?2.x?RabbitTemplate默認消息持久化的原因解析
這篇文章主要介紹了Springboot?2.x?RabbitTemplate默認消息持久化的原因解析,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
SpringBoot項目構(gòu)建Maven標(biāo)簽及屬性用法詳解
在?Spring?Boot?項目中,Maven?是最常用的構(gòu)建工具之一,本文將詳細介紹?Maven?依賴管理中的主要標(biāo)簽及其使用方法,幫助開發(fā)者更好地理解和使用?Maven?構(gòu)建工具,感興趣的朋友跟隨小編一起看看吧2024-08-08
SpringBoot @ModelAttribute使用場景分析
這篇文章主要介紹了SpringBoot @ModelAttribute使用場景分析,文中通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下2021-08-08

