Java核心API-Random类

本文详细介绍了Java中的Random类,包括无参和有参构造方法的使用,以及nextInt、nextBoolean和nextBytes方法的功能。特别强调了使用相同种子值创建的Random对象会生成一致的随机数序列。

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());

        // 注意:要用有参构造方法,传参相同,调用相同的方法则随机数也是相同的,无参构造方法不行

    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值