Java如何生成一个简单随机数

java如何生成一个简单随机数

一、利用random方法

Java的Math类中,有一个random的方法可以用来生成随机数,这也是最简单的用来生成随机数的方法。

random方法讲解

random方法本身会生成0~1之间的随机数,注意,这些随机数都是double类型的,并且是大于等于0,小于1的。(不会等于1!!!)
在使用的时候我们可以对random方法灵活处理,来获得我们想要的数。

    public static void main(String[] args) {
    
        //如何随机生成1-10之间的整数?
        
            int num=(int)(Math.random()*10+1);
            System.out.println(num);
          
    }
}

前面的(int)是将随机生成的double类型强制转换成int类型,
再将random*10即可获得范围0~9之间的整数,
再+1即可获得1~10之间的随机整数.

如果想要随机生成1~N之间的整数,我们只需要把上面代码中的10换成N就ok了

再举个例子,比如我想获得10到100之间的随机整数,

   public static void main(String[] args) {
        
            int max=100;
            int min=10;
            //也可以不定义max,min变量,直接把下面的max,min换成我们想要的范围
            //max是最大值,min是这个范围的最小值
            int num=(int)(Math.random()*(max-min)+min);
            System.out.print(num);
            
    }

二、通过Random类来实现

Random类的使用需要先定义一个实例
然后就可以通过这个实例生成随机数,不仅可以生成随机的int型整数,还能生成随机的float型,随机的double型,随机的boolean类型等等

    public static void main(String[] args) {


        Random a =new Random();//定义一个实例
        int ran1=a.nextInt();
       
       
    }

此处ran1就是通过实例生成的随机整数,还可以随机生成其他类型的数

    public static void main(String[] args) {

        Random a =new Random();
        int ran1=a.nextInt();
        int ran=a.nextInt(20);
        //这里可以指定随机数最大不能超过20


        float ran2=a.nextFloat();
        double ran3=a.nextDouble();
        boolean ran4=a.nextBoolean();

    }

Random类可以指定生成的随机数的范围上限,但是不能指定下限。

三 、通过获取毫秒数来实现

在System类中有一个currentTimeMillis的方法,这个方法是返回从1970年1月1号0点0分0秒到现在的毫秒数,返回的类型是long,我们可以返回值进行灵活操作,来获取一些随机值。
使用方法如下:

    public static void main(String[] args) {
        
           //生成1~100之间的随机值
            long randomNum=System.currentTimeMillis();
            int ran=(int)(randomNum%(100-1)+1);

    }

此处的ran就是我们想要的随机值,后面的100和1可以自由的替换,100可以替换成随机数范围的上限,1替换成随机数范围的下限。
这种方法一般不常用,但也是一种思路。

四、利用ThreadLocalRandom类

  public static void main(String[] args) {
        
          //分别生成不同类型的随机值
           int ran1= ThreadLocalRandom.current().nextInt();
           
           double ran2=ThreadLocalRandom.current().nextDouble();
           
           float  ran3=ThreadLocalRandom.current().nextFloat();
           
           boolean ran4 =ThreadLocalRandom.current().nextBoolean();

ThreadLocalRandom类与Random类相比,ThreadLocalRandom类在使用的过程中不需要显式初始化实例,这样可以避免创建一些无用的实例。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值