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,是如何得到十八个数的!

解决方案 »

  1.   

    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个值就是这么来的。这个还和数组的类型是有关系的。三言两语 也说不清
      

  2.   

    你可以这么看Random random = new Random();//实例化对象
    int i=random.nextInt(20);//创建一个范围为0到20的的数字
    Integer[] a = new Integer[i];//创建数组对象,长度为i