日期:2014-05-20  浏览次数:20658 次

问一下关于随机数的问题
import java.util.*;
public class huantinglove{
public static void main(String[] args){
Random random = new Random(47);
Integer[] a = new Integer[random.nextInt(20)];//这里是什么意思??是产生一个小于20的随机数吗?但为什么能够直接赋值给数组。。
System.out.println("length of a = " + a.length);
for (int i = 0;i < a.length;i ++ )
{
a[i] = random.nextInt(500);
}
System.out.println(Arrays.toString(a));

}
}

为什么a.length = 18,是如何得到十八个数的!

------解决方案--------------------
Integer[] a = new Integer[random.nextInt(20)];//这是定义一个长度在20类的随机大小的Integer数组。

a.length=18就说明random.nextInt(20)产生的随机数为18,也就是random.nextInt(20)==18,所以,
Integer[] a = new Integer[random.nextInt(20)];也就等同于:
Integer[] a = new Integer[18];//到此,也就是相当于你定义了一个长度为18的数组。但是数组并还没有得到18个数,只是它此时的长度为18而已。但是数组中的每个元素都是有默认值的,从这个解度来说,它也就有了18个默认值,18个值就是这么来的。这个还和数组的类型是有关系的。三言两语 也说不清