Random类

一:定义:专门用来生成伪随机数,有两个构造器,一个构造器使用默认的种子(以当前时间作为种子),一个需要程序员显式传入一个long型整数的种子

二.使用方法

 

 1 import java.util.Arrays;
 2 import java.util.Random;
 3 /**
 4  * 一.Arrays类:此类包含用来操作数组(比如排序和搜索)的各种方法
 5  * 二. public static String toString(byte[] a)返回指定数组内容的字符串表示形式。
 6  *  字符串表示形式由数组的元素列表组成,括在方括号("[]")中。
 7  *  相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(byte) 转换为字符串。
 8  *  如果 a 为 null,则返回 "null"。 
 9  * @author 罗摩衔那
10  *
11  */
12 public class RandomTest
13 {
14    public static void main(String[] args) 
15    {
16            //获取Random对象
17            Random r=new Random();
18            //获取Boolean型随机数
19            System.out.println("r.nextBoolean():"+r.nextBoolean());
20            //创建一个byte型数组
21            byte []summer=new byte[16];
22            r.nextBytes(summer);//随机生成16个byte型数值
23            System.out.println(Arrays.toString(summer));//返回指定数组内容的字符串表示形式。
24            //生成0.0~1.0之间的伪随机数double数
25            System.out.println("r.nextDouble():"+r.nextDouble());
26            //生成0.0~1.0之间的伪随机数float数
27            System.out.println("r.nextFloat():"+r.nextFloat());
28            //生成平均值是0.0,标准差是1.0的伪高斯数
29            System.out.println("r.nextGaussian():"+r.nextGaussian());
30            //生成一个处于int整数取值范围的伪随机数
31              System.out.println("r.nextInt():"+r.nextInt());
32            //生成0~100之间的伪随机数
33            System.out.println("r.nextInt(100):"+r.nextInt(100));
34            //生成一个处于龙long整数取值范围的伪随机数
35            System.out.println("r.nextLong():"+r.nextLong());
36     }
37 }

 

补充:一.ThreadLocalRandom是Random的增强版,出现在java7中

          在并发环境下,使用前者可以减少多线程资源竞争,保证体统具有更好的线程安全性

         二.为避免两个Random对象产生相同的数字序列通常使用当前时间作为Random对象的种子

 

Random rand=new Random(System.currentTimeMillis());

 

三.ThreadLocalRandom使用方法

ThreadLocalRandom rand=ThreadLocalRandom().current();
//生成一个1~20之间的伪随机数
    int a=rand.nextInt(1,20);
//生成一个2.0~10.0之间的伪随机浮点数
    int a=rand.nextDouble(2.0,10.0);

 

posted @ 2018-11-25 11:48  静心*尽力  阅读(154)  评论(0编辑  收藏  举报