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

