当前位置:
首页
文章
后端
详情

Java中两种生成随机数的方式 详细内容总结

在Java中想要在指定范围内生成随机数的实现方式主要有两种,一种是使用Math类中的random()方法,另一种是使用Random类。下面文章将为大家详细总结Java中这两种生成随机数的方式。

一、Math.random()方法

该方法相对于 Random 类而言比较简单,因为 Math 类是 Java 的内置包装类,无需创建一个实例化对象,可以在程序中直接调用该类,以及使用该类的方法。

使用该方法的小伙伴们应该都知道,该方法只能是生成 [0.0,1.0) 之间 double 类型的任意一个小数,生成的随机数相对比较单一,想要生成其他类型的,就需要在该方法前面加上一个类型强转。

public class Demo01 {
    public static void main(String[] args) {
        for (int i = 0; i <5 ; i++) {
            System.out.println("第"+(i+1)+"个随机数"+Math.random());
} } }

打印结果:

第1个随机数0.414584525834634
第2个随机数0.20853675432372987
第3个随机数0.8055865595912437
第4个随机数0.36986922245541953
第5个随机数0.8716016725358281

生成具体范围内的任意一个整数,例如在 [20, 35] 之间生成随机数。

public class Demo01 {

    public static void main(String[] args) {

       int num;

        for (int i = 0; i < 5; i++) {

            /**
             * 要求是在[20,35]之间生成一个随机整数
             * 因为要包括35,但是random随机生成是不包括右侧的值,所以右侧取36
             * 即[20,36)
             * 左右各减去20   [0,16)
             * 而Math.random的范围是在[0,1),需要乘上16
             * 最后再加上20,即[20,36)
             * 在进行 int 强转
             * */
            num = (int)(Math.random()*16)+20;
            System.out.println("第"+(i+1)+"次:"+num);
        }
    }
}

打印结果:

第1次:29
第2次:25
第3次:33
第4次:34
第5次:30

二、Random类

Random 相较于 Math.random() 方法而言,它提供了各式各样的生成随机数的方式,可以生成 boolean,int,long,float,byte以及double类型的随机数。

Random 类是属于 java.util 包的,该类经常使用的两个构造方法如下:

  • Random()    使用一个和系统时间(也就是你电脑右下角的时间)对应的数字作为种子数,然后根据这个种子数构造一个 Random 对象。
  • Random(long seed)    使用单个 long 类型的参数创建一个新的随机数生成器。
Random 类中的常用方法:
Random类常用方法

下面将通过编写一个简单的 Java 程序,来演示 Random 的具体使用:

import java.util.Random;

public class Demo02 {

    public static void main(String[] args) {
        // 需要创建一个Random类实例化对象
        Random random=new Random();
        double d1=random.nextDouble(); // 生成一个[0.0,1.0)之间double类型的小数
        double d2=random.nextDouble() * 10; // 生成一个[0.0,10.0)之间double类型的小数

        int i1=random.nextInt(5); // 生成[0,5)之间的一个整数
        int i2=random.nextInt(15)-5;// 生成[-5,10)之间的一个整数

        long l1=random.nextLong(); // 生成一个长整型的整数
        boolean b1=random.nextBoolean(); // 生成一个布尔值
        float f1=random.nextFloat(); // 生成一个浮点型

        System.out.println("[0.0,1.0)随机生成的小数是:"+d1);
        System.out.println("[0.0,10.0)随机生成的小数是:"+d2);
        System.out.println("[0,5)随机生成的整数是:"+i1);
        System.out.println("[-5,10)随机生成的整数是:"+i2);
        System.out.println("随机生成的长整型是:"+l1);
        System.out.println("随机生成的布尔值是:"+b1);
        System.out.println("随机生成的浮点型是:"+f1);
    }
}

打印结果:

[0.0,1.0)随机生成的小数是:0.9045874539818738
[0.0,10.0)随机生成的小数是:1.1869962319035776
[0,5)随机生成的整数是:2
[-5,10)随机生成的整数是:1
随机生成的长整型是:4030922400205769823
随机生成的布尔值是:true
随机生成的浮点型是:0.3139649

三、总结

本篇关于 Java 中生成随机数的两种方式,Math.random() 和 Random 类的详细内容介绍到此就结束了,想要了解更多相关于 Java 随机相关的知识,可以搜索W3Cschool相关文章。希望本篇文章对大家的学习有所帮助,也希望大家能够多多地关注和支持我们!


免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章

深入了解C++中的new操作符:使用具体实例学习

C++中的new操作符是动态分配内存的主要手段之一。在程序运行时,我们可能需要动态地创建和销毁对象,而new就是为此提供了便利。但是,使用new也常常会引发一些问题,如内存泄漏、空指针等等。因此,本文将通过具体的示例,深入介绍C++中的new操作符,帮助读者更好地掌握其使用。


深入了解C++中的new操作符:使用具体实例学习

怎么用Java反射获取包下所有类? 详细代码实例操作

Java的反射机制就是在运行状态下,对于任何一个类,它能知道这个类的所有属性和方法;对于任何一个对象,都能调用这个对象的任意一个方法。本篇文章将通过具体的代码示例,展示如何通过Java反射来获取包下的所有类。


怎么用Java反射获取包下所有类? 详细代码实例操作

了解Java中的volati关键字的作用 以及具体使用方法

本篇文章将和大家分享一下Java当中的volatile关键字,下面将为各位小伙伴讲述volatile关键字的作用以及它的具体使用方法。


了解Java中的volati关键字的作用 以及具体使用方法

Java Map 所有的值转为String类型

可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型: 上面的代码会将 map 中所有的值都转为 String 类型。 HashMap 是 Java

Java Map 所有的值转为String类型

员工线上学习考试系统

有点播,直播,在线支付,三级分销等功能,可以对学员学习情况的监督监控,有源码,可二次开发。支持外网和局域网私有化部署,经过测试源码完整可用!1、视频点播:视频播放,图文资料,课件下载,章节试学,限时免

员工线上学习考试系统