Java Random随机数生成类的用法(附带实例)
Random 类是 JDK 中的随机数生成器类,程序开发人员可以通过实例化一个 Random 类对象来创建一个随机数生成器,语法如下:
用户也可以在实例化 Random 类对象时,设置随机数生成器的种子。语法如下:
在 Random 类中,提供了获取各种数据类型随机数的方法,下面列举几个常用的方法。
【实例】获取不同取值范围、不同类型的随机数。在项目中创建 RandomDemo 类,在类的主方法中创建 Random 类的对象,使用该对象生成各种类型的随机数,并输出结果。
Random r = new Random();以这种方式实例化对象时,Java 编译器将以系统当前时间作为随机数生成器的种子。因为每时每刻的时间不可能相同,所以产生的随机数不同。但是,如果运行速度太快,也会产生两个运行结果相同的随机数。
用户也可以在实例化 Random 类对象时,设置随机数生成器的种子。语法如下:
Random r = new Random(seedValue);
- r:Random类对象。
- seedValue:随机数生成器的种子。
在 Random 类中,提供了获取各种数据类型随机数的方法,下面列举几个常用的方法。
方法 | 功能描述 |
---|---|
public int nextInt() | 返回一个随机整数。 |
public int nextInt(int n) | 返回大于或等于 0 且小于 n 的随机整数。 |
public long nextLong() | 返回一个随机长整型值。 |
public boolean nextBoolean() | 返回一个随机布尔型值。 |
public float nextFloat() | 返回一个随机单精度浮点型值。 |
public double nextDouble() | 返回一个随机双精度浮点型值。 |
public double nextGaussian() | 返回一个概率密度为高斯分布的双精度浮点型值。 |
【实例】获取不同取值范围、不同类型的随机数。在项目中创建 RandomDemo 类,在类的主方法中创建 Random 类的对象,使用该对象生成各种类型的随机数,并输出结果。
import java.util.Random; public class RandomDemo { public static void main(String[] args) { Random r = new Random(); // 实例化一个 Random 类对象 // 随机产生一个整数 System.out.println("随机产生一个整数:" + r.nextInt()); // 随机产生一个大于或等于 0 且小于 10 的整数 System.out.println("随机产生一个大于或等于 0 且小于 10 的整数:" + r.nextInt(10)); // 随机产生一个布尔型的值 System.out.println("随机产生一个布尔型的值:" + r.nextBoolean()); // 随机产生一个双精度浮点型的值 System.out.println("随机产生一个双精度浮点型的值:" + r.nextDouble()); // 随机产生一个单精度浮点型的值 System.out.println("随机产生一个单精度浮点型的值:" + r.nextFloat()); // 随机产生一个概率密度为高斯分布的双精度浮点型的值 System.out.println("随机产生一个概率密度为高斯分布的双精度浮点型的值:" + r.nextGaussian()); } }代码每次运行得到的结果都会不同,笔者运行程序时的结果如下:
随机产生一个整数:-991995210
随机产生一个大于或等于0且小于10的整数:5
随机产生一个布尔型的值:true
随机产生一个双精度浮点型的值:0.05001508158115486
随机产生一个单精度浮点型的值:0.31018203
随机产生一个概率密度为高斯分布的双精度浮点型的值:0.6781040183219917