java.util包——随机类(Random)

java.util 包——随机类 (Random)

作者: zccst

 

java.util 包中的内容重点讲解部分:

1.       随机类 (Random)

2.       StringTokenizer

3.       集合和映射 (BitSet, Vector, Stack, Hashable)

 

 

随机类 (Random) —— java 产生随机数的几种方式之一

java.lang.Math 中的方法 Random() java.util.Random 的比较:

1 public static double random() 返回值范围是 [0.0, 1.0) ,且近似均匀分布。第一次调用时,将创建一个新的伪随机数生成器。

new java.util.Random 也创建一个新的伪随机数生成器。且此方法是完全同步的,可允许多个线程使用而不出现错误。

 

2 java.util.Random 可以产生 int long float double 以及 Goussian 等类型的随机数。这是它与 java.lang.Math 中的方法 Random() 最大的不同之处,后者只产生 double 型的随机数。

 

此外, System 类中有一个 currentTimeMillis() 方法,这个方法返回一个从 1970 1 1 0 0 0 秒到目前的一个毫秒数,返回类型是 long ,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内。

 

java.util.Random 随机数类

1,  随机类 (Random) 的构造方法( 2 个)

public Random()

public Random(longseed)

Java 产生随机数需要有一个基值 seed ,在第一种方法中基值缺省,则将系统时间作为 seed

 

2,  随机类 (Random) 常用方法( 6 个)

public int nextInt()                      // 该方法是产生一个 int 型随机数。 [0-n)

public long nextLong()                   // 该方法是产生一个 long 型随机数 .

public float nextFloat()                   // 该方法是产生一个 Float 型随机数。 [0.0f-1.0f)

public double nextDouble()               // 该方法是产生一个 Double 型随机数。 [0.0d-1.0d)

public void nextBytes(byte[] bytes);        // 生成随机数据的字节数组,存放在 byte[]

 

public synonronized void setSeed(longseed)  // 该方法是设定基值 seed

public synchronized double nextGoussian()  // 该方法是产生一个 double 型的 Goussian 随机数。

 

例: RandomNumber.java

源码如下:

import java.util.Random;

public class RandomNumber{

         public static void main(String[] args){

                   Random rand1=new Random();

                   byte[] b= new byte[5];

                   rand1.nextBytes(b);

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

                            System.out.print(b[i]+"/t");

                   System.out.println();

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

                            System.out.print(rand1.nextInt(100)+"/t");

                   System.out.println();

                   for(int i=0; i<3;i++)

                            System.out.print(rand1.nextDouble()+"/t");

                   System.out.println();                         

         }

}

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值