在JDK的java.util包中,有一个Random类,它可以在指定的取值范围内随机产生数字。在Random类中提供了两个构造方法,如表5-5所示。
表Random的构造方法
![](https://i-blog.csdnimg.cn/blog_migrate/55fa8f4d5e490bcffff8d9f29a0f4936.png)
表5-5中列举了Random类的两个构造方法,其中第一个构造方法是无参的,通过它创建的Random实例对象每次使用的种子是随机的,因此每个对象所产生的随机数不同。如果希望创建的多个Random实例对象产生相同序列的随机数,则可以在创建对象时调用第二个构造方法,传入相同的种子即可。
相对于Math的random()方法而言,Random类提供了更多的方法来生成各种伪随机数。它不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数,Random类中的常用方法,如表5-6所示。
表5-6Random类的常用方法
![](https://i-blog.csdnimg.cn/blog_migrate/40e62025419cfa890cf96c5e62136cab.png)
表5-6中,列出了Random类常用的方法,其中,Random类的nextDouble()方法返回的是0.0和1.0之间double类型的值,nextFloat()方法返回的是0.0和1.0之间float类型的值,nextInt(int n)返回的是0(包括)和指定值n(不包括)之间的值。接下来通过一个案例来学习这些方法的使用,如例5-16所示。
例5-16 Example16.java
importjava.util.Random;publicclassExamplel6{publicstaticvoidmain(String[] args){Random r =newRandom();System.out.println("生成boolean类型的随机数:"+r.nextBoolean());System.out.println("生成double类型的随机数:"+r.nextDouble());System.out.println("生成float类型的随机数:"+r.nextFloat());System.out.println("生成int类型的随机数:"+r.nextInt());System.out.println("生成0到10之间int类型的随机数:"+r.nextInt(10));System.out.println(”生成long类型的随机数:"
+r.nextLong());}}
运行结果如图5-16所示。
![](https://i-blog.csdnimg.cn/blog_migrate/8bcd9086a41b99e3eeab97e06445a0f6.jpeg)
从图5-16可以看出,通过调用Random类不同的方法分别产生了不同类型的随机数。