Java随机类--Random类学习

java.util.Random中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字,注意:种子数只是随机算法的起源数字,和生成的随机数字的区间无关

1. 生成Random对象

1. Random类包含两个构造方法:

(1)public Random()
该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象。

(2)public Random(long seed)
该构造方法可以通过制定一个种子数进行创建。

2. 示例:

Random random = new Random();
Random random2 = new Random(10);

2. Random类中的常用方法

1. 下图是Random类的几个常用方法:

2. 最常用方法:

(1)public int nextInt()方法
该方法的作用是生成一个随机的int值,该值介于int的取值范围区间,也就是-231到231-1之间:-2147483648~2147483647

(2)public int nextInt(int bound)方法
该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

(3)public double nextDouble()方法
该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。

3. 示例:

(1)代码:

(2)运行结果:

3. 注意

前面介绍过,相同种子数的Random对象,相同次数生成的随机数字是完全相同的,下面是测试的代码:

运行结果:

在该代码中,对象random、random2、random3使用的种子数都是10,则这3个对象相同次数生成的随机数是完全相同的。

如果想避免出现随机数字相同的情况,则需要注意,无论项目中需要生成多少个随机数字,都只使用一个Random对象即可。

4. 关于Math类中的random方法

Math类也提供了一个随机方法:public static double random(),该方法返回一个[0,1.0)之间的随机小数,查看源码发现,其实就是调用了Random类的nextDouble()方法,所以,Math.random() == random.nextDouble()方法

示例:

可以看到,两个方法都是返回一个[0,1.0)之间的随机小数

原文地址:https://www.cnblogs.com/wang-zai/p/7810262.html