Random类
前言
产生随机数的其他方式 java.util.Random
import java.util.Arrays;
import java.util.Random;
public class RandomDemo01 {
public static void main(String[] args) {
// java.lang.Math 包中的Math类Random产生随机数
// java.lang.Object
// java.util.Random Random类 继承java.lang.Object
// 使用无参构造方法创建Random类对象
Random random1 = new Random();
// 通过random对象调用方法获取随机数
// public int nextInt()返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值
// 所有 2的32次方 个可能 int 值的生成概率(大致)相同
int num1 = random1.nextInt();
System.out.println(num1);
// public int nextInt(int n)返回一个伪随机数
// 它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值
for (int i = 0; i <= 100; i++) {
int num2 = random1.nextInt(10); // 随机数范围在[0,10)
System.out.print(num2 + " ");
}
System.out.println();
System.out.println("------ ------ ------");
// Random类中布尔值
for (int i = 0; i < 10; i++) {
boolean bool = random1.nextBoolean();
System.out.print(bool + " "); // 结果为true或false
}
System.out.println();
System.out.println("------ ------ ------");
byte[] bytes = new byte[50];
random1.nextBytes(bytes); // 所生成的随机字节数等于该 byte 数组的长度
System.out.println(Arrays.toString(bytes));
System.out.println("------ ------ ------");
/*
* 用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的
*/
// 使用有参构造方法创建Random对象
// public Random(long seed)使用单个 long 种子创建一个新的随机数生成器
Random r1 = new Random(100L);
Random r2 = new Random(100L);
System.out.println(r1.nextInt(50)); // 产生随机数范围[0,50]
System.out.println(r2.nextInt(50));
// 产生随机数的结果是一样
System.out.println(r1.nextBoolean());
System.out.println(r2.nextBoolean());
// 注意:要用有参构造方法,传参相同,调用相同的方法则随机数也是相同的,无参构造方法不行
}
}
本文详细介绍了Java中的Random类,包括无参和有参构造方法的使用,以及nextInt、nextBoolean和nextBytes方法的功能。特别强调了使用相同种子值创建的Random对象会生成一致的随机数序列。
5228

被折叠的 条评论
为什么被折叠?



