Java 之 Random 类



random 英文意思:随机的;顾名思义这个类的主要作用是生成随机数。


查一下Random的API文档


Random java seed 作用 java中random是什么意思_随机数


可见他在java.util的包下。我们知道,Java中除了lang包不用导包外,其他的都要导包。具体格式如下:


improt java.util.Random

当然,使用IDEA的时候不需要自己手动导包,因为它可以实现自动导包。
例如你需要使用到Random类声明对象,只需写上如下代码:

Random java seed 作用 java中random是什么意思_编程语言_02

点击Random(java.util),IDEA就会自动帮你导入Random包了

import java.util.Random;

public class javaRandom {
    Random rand =new Random();
}

那么,接下来看看Random里的构造方法

Random java seed 作用 java中random是什么意思_java_03


共有两个构造方法,比较常用的是第一个无参构造。

seed叫做种子,long你肯定理解,为什么叫seed你不理解,这和伪随机函数的原理有关系,Random这个函数必须要一个种子,然后根据算法,从这个种子做为起点来运算,给出一个随机数。

具体的定义格式:Random 对象名 =new Random(); 类的实例已经生成完了,接下看看看Random类有哪些常用的成员方法

  • public int nextInt()
    返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值

API上说的好像不是人话,大白话翻译一下就是随机生成一个int类型的整数,范围是 -2^31~2^31之间的随机数;
他还有一个重载形式

  • public int nextInt(int n)
    返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
import java.util.Random;

public class javaRandom {

    public static void main(String[] args) {
        Random rand =new Random();
        for (int i = 0; i < 10; i++) {
            int n=rand.nextInt(2);
            System.out.print(n+" ");
        }

    }
}

结果为:

0 0 1 0 1 0 0 1 0 1

可见随机数的取值区间用数学符号表示就是[0,2)左开右闭区间。
类似的还有 :

double nextDouble()
返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
float nextFloat()
返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。

还有一个比较常用的

void nextBytes(byte[] bytes)
生成随机字节并将其置于用户提供的 byte 数组中。

import java.util.Arrays;
import java.util.Random;

public class javaRandom {

    public static void main(String[] args) {
        Random rand =new Random();
        byte a[]=new byte[10];
        rand.nextBytes(a);
        System.out.println(Arrays.toString(a));
        }
    }

先声明一个字节数组a ,并为他动态分配10个byte的内存空间。利用Random的nextByte成员函数为数组赋随机值。利用Arrays类的静态成员函数把a数组转换为字符串输出

[61, -122, 28, 67, 99, -30, -43, -45, 89, 56]

以上就是常用的一些Random的成员方法。欢迎大佬指正~~