在java中,我們可以通過兩種方式來獲取隨機數(generating a random number)一種是大家熟悉的java.lang.Math.Random()靜態方法,另一種是創建java.util.Random對象。下面是兩種方法的使用過程:
一.java.lang.Math.random()
在使用這一靜態方法的時候,我們不需要import任何包,因為java.lang.*包是默認載入的,下面舉例說面使用方法:
public class RandomTest{
public static void main(String[] args){
int i=Math.random();//random()會自動產生一個0.0-1.0的雙精度隨機數
System.out.println(i);//輸出
i=Math.random()*1000;//產生0-1000的雙精度隨機數
System.out.println(i);
int b=(int)(Math.random()*1000);//產生0-1000的整數隨機數
System.out.println(b);
}
}
二.創建java.util.Random對象
import java.util.random
public class RandomTest{
public static void main(String[] args){
Random random=new Random();//創建random對象
int intNumber=random.nextInt();//獲取一個整型數
float floatNumber=random.nextFloat();//獲取一個浮點數(0-1)
double doubleNumber=random.nextDouble();//獲取雙精度數(0-1)
boolean booleanNumber=random.nextBoolean();//獲取boolean數
System.out.println("intNumber:"+intNumber);
System.out.println("floatNumber:"+floatNumber);
System.out.println("doubleNumber:"+doubleNumber);
System.out.println("booleanNumber:"+booleanNumber);
}
}
random在產生隨機數的時候使用當前的時間作為基數,我們可以同過System.currentTimeMillis()來獲取這個基數。當然我們也可以指定基數:
Random random=new Random(100);
同一基數所產生的隨機數序列是一樣的,可以用下面這一段程序進行印證:
import java.util.random
public class RandomTest{
public static void main(String[] args){
Random random1=new Random(100);
Random random2=new Random(100);
for(int i=0;i<5;i++){
System.out.print(random1.nextInt()+"\t");
System.out.println(random2.nextInt()+"\t");
System.out.println("---------------------------------");
}
}
}
我們可以發現random1和random2所產生的隨機數是相同的。