溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中生成隨機數的方法

發布時間:2020-08-20 12:02:24 來源:億速云 閱讀:204 作者:小新 欄目:編程語言

這篇文章主要介紹了Java中生成隨機數的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

在Java中提供了三種使用一些內置方法和類生成隨機數的方法,如下所示:

1、java.util.Random類

2、Math.random方法:可以生成double類型的隨機數。

3、ThreadLocalRandom類

下面我們就來看看具體Java是如何實現隨機數的生成。

1、java.util.Random類

Java 實用工具類庫中的類:java.util.Random 提供了產生各種類型隨機數的方法。

要使用java.util.Random類生成隨機數,我們必須首先創建此類的實例,然后使用該實例調用nextInt(),nextDouble(),nextLong()等方法。

我們可以使用java.util.Random類隨機生成:整數,浮點數,雙精度數,長整數,布爾運算數等類型的隨機數。

我們可以將參數傳遞給方法,以便在要生成的數字范圍上放置上限。例如,nextInt(6)將生成0到5(包括0和5)范圍內的數字。

// 隨機數生成
// 使用java.util.Random; 
import java.util.Random; 

public class generateRandom{ 

	public static void main(String args[]) 
	{ 
		// 創建隨機類的實例
		Random rand = new Random(); 

		// 在0到999范圍內生成隨機整數
		int rand_int1 = rand.nextInt(1000); 
		int rand_int2 = rand.nextInt(1000); 

		// 輸出隨機整數
		System.out.println("隨機整數: "+rand_int1); 
		System.out.println("隨機整數: "+rand_int2); 

		// 生成隨機雙精度數
		double rand_dub1 = rand.nextDouble(); 
		double rand_dub2 = rand.nextDouble(); 

		// 輸出隨機雙精度數
		System.out.println("隨機雙精度數: "+rand_dub1); 
		System.out.println("隨機雙精度數: "+rand_dub2); 
	} 
}

運行輸出:

Java中生成隨機數的方法

2、Math.random方法

Math類包含用于執行各種數值運算的各種方法,例如計算取冪,對數等。這其中的一個方法:random(),可以返回帶有正號的double數,值大于或等于0.0且小于1.0 ,即取值范圍是[0.0,1.0)的左閉右開區間。

random()方法返回的值是偽隨機選擇的,在[0.0,1.0)的范圍內(近似)均勻分布。

注:它只能生成double類型的隨機數。

下面我們就通過java代碼介紹如何使用此方法產生隨機數:

// Math.random() 生成隨機數
import java.util.*; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 隨機雙精度數的生成
		System.out.println("隨機雙精度數: " + Math.random()); 
		System.out.println("隨機雙精度數: " + Math.random()); 
	} 
}

運行結果:

Java中生成隨機數的方法

3、java.util.concurrent.ThreadLocalRandom類

ThreadLocalRandom類是在java 1.7中引入的,提供并發產生隨機數,能夠解決多個線程發生的競爭爭奪??梢陨烧麛?,雙精度,布爾等類型的隨機數。

ThreadLocalRandom的主要實現細節:

1)、使用一個普通的long而不是使用Random中的AtomicLong作為seed

2)、不能自己創建ThreadLocalRandom實例,因為它的構造函數是私有的,我們可以使用它的靜態方法ThreadLocalRandom.current()

3)、它是CPU緩存感知式的,使用8個long虛擬域來填充64位L1高速緩存行

下面我們就通過簡單的java代碼介紹如何使用這個類生成隨機數:

// 隨機數的產生
// 使用java.util.concurrent.ThreadLocalRandom類
import java.util.concurrent.ThreadLocalRandom; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 在0到999范圍內生成隨機整數
		int rand_int1 = ThreadLocalRandom.current().nextInt(); 
		int rand_int2 = ThreadLocalRandom.current().nextInt(); 

		// 輸出隨機整數
		System.out.println("Random Integers: " + rand_int1); 
		System.out.println("Random Integers: " + rand_int2); 

		// 生成隨機雙精度數
		double rand_dub1 = ThreadLocalRandom.current().nextDouble(); 
		double rand_dub2 = ThreadLocalRandom.current().nextDouble(); 

		// 輸出隨機雙精度數
		System.out.println("Random Doubles: " + rand_dub1); 
		System.out.println("Random Doubles: " + rand_dub2); 

		// 生成隨機布爾值
		boolean rand_bool1 = ThreadLocalRandom.current().nextBoolean(); 
		boolean rand_bool2 = ThreadLocalRandom.current().nextBoolean(); 

		// 輸出隨機布爾值
		System.out.println("Random Booleans: " + rand_bool1); 
		System.out.println("Random Booleans: " + rand_bool2); 
	} 
}

運行輸出:

Java中生成隨機數的方法

感謝你能夠認真閱讀完這篇文章,希望小編分享Java中生成隨機數的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女