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();                         

         }

}

 

 

 

 

你可能感兴趣的:(spring框架开发)