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
java.util.Random 隨機數類
1, 隨機類 (Random) 的構造方法( 2 個)
public Random()
public Random(longseed)
Java 產生隨機數需要有一個基值 seed ,在第一種方法中基值預設,則將系統時間作為 seed 。
2, 隨機類 (Random) 常用方法( 6 個)
public int nextInt() // 該方法是產生一個 int 型隨機數。
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();
}
}