1. 程式人生 > >java.util包——隨機類(Random)

java.util包——隨機類(Random)

java.util 包——隨機類 (Random)

作者: zccst

java.util 包中的內容重點講解部分:

1. 隨機類 (Random)

2. StringTokenizer

3. 集合和對映 (BitSet, Vector, Stack, Hashable)

隨機類 (Random) —— java 產生隨機數的幾種方式之一

java.lang.Math 中的方法 Random() java.util.Random 的比較:

1 public static double random() 返回值範圍是 [0.0, 1.0)

,且近似均勻分佈。第一次呼叫時,將建立一個新的偽隨機數生成器。

new java.util.Random 也建立一個新的偽隨機數生成器。且此方法是完全同步的,可允許多個執行緒使用而不出現錯誤。

2 java.util.Random 可以產生 int long float double 以及 Goussian 等型別的隨機數。這是它與 java.lang.Math 中的方法 Random() 最大的不同之處,後者只產生 double 型的隨機數。

此外, System 類中有一個 currentTimeMillis() 方法,這個方法返回一個從 1970 1 1

0 0 0 秒到目前的一個毫秒數,返回型別是 long ,我們可以拿他作為一個隨機數,我們可以拿他對一些數取模,就可以把他限制在一個範圍之內。

java.util.Random 隨機數類

1, 隨機類 (Random) 的構造方法( 2 個)

public Random()

public Random(longseed)

Java 產生隨機數需要有一個基值 seed ,在第一種方法中基值預設,則將系統時間作為 seed

2, 隨機類 (Random) 常用方法( 6 個)

public int nextInt() // 該方法是產生一個 int 型隨機數。

[0-n)

public long nextLong() // 該方法是產生一個 long 型隨機數 .

public float nextFloat() // 該方法是產生一個 Float 型隨機數。 [0.0f-1.0f)

public double nextDouble() // 該方法是產生一個 Double 型隨機數。 [0.0d-1.0d)

public void nextBytes(byte[] bytes); // 生成隨機資料的位元組陣列,存放在 byte[]

public synonronized void setSeed(longseed) // 該方法是設定基值 seed

public synchronized double nextGoussian() // 該方法是產生一個 double 型的 Goussian 隨機數。

例: RandomNumber.java

原始碼如下:

import java.util.Random;

public class RandomNumber{

public static void main(String[] args){

Random rand1=new Random();

byte[] b= new byte[5];

rand1.nextBytes(b);

for(int i=0;i<5;i++)

System.out.print(b[i]+"/t");

System.out.println();

for(int i=0; i<5;i++)

System.out.print(rand1.nextInt(100)+"/t");

System.out.println();

for(int i=0; i<3;i++)

System.out.print(rand1.nextDouble()+"/t");

System.out.println();

}

}