Random类在java.util.*包下,其构造方法有两种,分别是:Random()和Random(long seed)。如果使用Random()来创建类,则每次执行程序其随机产生数都会改变,而是用Random(long seed)来创建随机类,每次执行程序其随机产生数保持不变。
另外,在Random类中,方法nextInt()会返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int
值。而方法nextInt(int i)也会返回一个伪随机数,但它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
举例说明如下:
import java.util.Random;
public class UsingStringBuilder {
public static Random random=new Random(47);
public String toString(){
StringBuilder result=new StringBuilder("[");
for(int i=0;i<25;i++){
result.append(random.nextInt(100));
result.append(", ");
}
result.delete(result.length()-2, result.length());
result.append("]");
return result.toString();
}
public static void main(String[] args) {
UsingStringBuilder usb=new UsingStringBuilder();
System.out.println(usb);
}
}
执行上面的程序,显示结果为:[58, 55, 93, 61, 61, 29, 68, 0, 22, 7, 88, 28, 51, 89, 9, 78, 98, 61, 20, 58, 16, 40, 11, 22, 4]
多次执行仍是上面的结果。但是如果把第三行的new Random(47)改为new Random(),则每次产生的结果不同。
如果将第七行中的random.nextInt(100)改为random.nextInt(),则会产生类似于下面的一行数:[-1172028779, 1717241110, -2014573909, 229403722, 688081923, -1812486437, 809509736, 1791060401, -2076178252, -1128074882, 1150476577, -210207040, 1122537102, 491149179, 218473618, -1946952740, -843035300, 865149722, -1021916256, -1916708780, -2016789463, 674708281, -2020372274, 1703464645, 2092435409]