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.   

    Arrays
      

  2.   

    Rand.nextInt(20)这一句,又限定了范围,所以就有你修改后的输出结果 2
      

  3.   

    LZ 建议你好好看下Java api.
      

  4.   

    Integer[] a=new Integer[Rand.nextInt(20)]; 
    数组大小是随机生成的
      

  5.   

    rand.nextInt(n);是随机产生一个大于0小于n的数
    和47没什么联系吧!
      

  6.   

    用了Random了嘛,怎么会一样呐
      

  7.   

     你加一句 System.err.println(a[i]);
    输出结果
    The length of a=18
    55
    193
    361
    461
    429
    368
    200
    22
    207
    288
    128
    51
    89
    [55, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
    [55, 193, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, null, null, null, null, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, null, null, null, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, null, null, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, null, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, 207, null, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, null, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, null, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, null, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, 89, null, null, null, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, 89, 309, null, null, null, null]
    309
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, 89, 309, 278, null, null, null]
    278
    498
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, 89, 309, 278, 498, null, null]
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, 89, 309, 278, 498, 361, null]
    361
    [55, 193, 361, 461, 429, 368, 200, 22, 207, 288, 128, 51, 89, 309, 278, 498, 361, 20]
    20
    随机数研究没有意义
      

  8.   

    Random Rand=new Random(47); 里面的47是设置此随机数生成器的种子,它是一种特定的随机数初始化算法,
    原则上种子的类型是long,范围是0-48之间,但是,通常重写方法可能使用 long 参数的所有 64 位作为种子值。
    总之:只要你在Random()的()里面赋了值,每次生成的随机数的个数和值就会是固定的。具体每个值会产生多少“固定”的随机数,LZ有兴趣可以去研究下!