import java.util.*;
public class String_16 {
    public static void main(String [] args){
        Random rand = new Random(47);
        String [] s = new String[rand.nextInt(20)];
        System.out.println(s.length);
        System.out.print(Arrays.toString(s));
        System.out.println();
    }
}Random.nextInt() 得到的是随机结果呀,
但这个测试程序都是输出18,
还有我看 Thinking in java
里面为什么老是用 47 作为参数呀!

解决方案 »

  1.   

    Random得到的都是伪随机数列,你每次都以47作为种子,得到的当然是每次都是18了。
    相同的种子总是会产生同样的数列。
      

  2.   

    这个是根据你new的这个数组传进去的随机数有关,你把20 改成其他的他拿到的随机数就不一样了。
      

  3.   

    以固定数做种子产生的随机数每次相同。
    书上着这样写就是为了便于观察结果,至于为什么用47是作者的喜好吧,Bruce eckel说47是魔数。
      

  4.   

    你用不帶參數的構造方法創建對象阿..
    Random rand=new Random();
    rand.nextInt(20);
    這樣不就不重複了嗎?
      

  5.   

    Random得到的都是伪随机数列,你每次都以47作为种子,得到的当然是每次都是18了。 
    相同的种子总是会产生同样的数列。如果不加47结果运行的会每次不同。
      

  6.   

    Random random=new Random()
    每次都用47为随即种子的话..得到的自然就一样
    ......THINK IN JAVA为啥用47做种子...可能作者他喜欢这个数字???
      

  7.   

    Random得到的都是伪随机数列,你每次都以47作为种子,得到的当然是每次都是18了。 
    相同的种子总是会产生同样的数列。如果不加47结果运行的会每次不同。