import java.util.*;
public class ArrayClass {
  public static void main(String[] args){
    Random Rand=new Random(47);
    Integer[] a=new Integer[Rand.nextInt(20)];
    System.out.println("The length of a="+a.length);
    for(int i=0;i<a.length;i++)
    a[i]=Rand.nextInt(500);
    System.out.println(Arrays.toString(a));
    
  }
}
在这里为什么The length of a=18?如果把 Random Rand=new Random(47)换成 Random Rand=new Random(40),那么The length of a=2。请问一下大家这是怎么回事?

解决方案 »

  1.   

    Random是随机产生器,每一次运行产生的数字不一样,自然a的长度也是随机的
      

  2.   

    Rand.nextInt(20)随机返回0~20(不包括20)之间的随机数,同时也会受到创建Random对象的构造函数里的参数的影响,不同的参数会使你的随机返回的数不同。
      

  3.   

    random.nextInt(20)产生0~20的随机数
      

  4.   

    你去看帮助文档 Random 这个类就明白了
      

  5.   

    public Random(long seed)seed - the initial seed这个seed是干嘛的?是个什么原理?
      

  6.   

    seed好像就是给随机数一个范围,就是说在多少的范围内随机数,比如彩票的30选7,因为是从0开始随机数的,所以括号中就应该写31,随机范围是0~30,如果写30的话,那么随机范围是0~29。