18.7.3 交错数组的初始化

我们在实例化交错数组的时候只实例化了顶级数组,要完成整个初始化,还要逐个初始化各个子数组,例如:


int[][]array1=new int[2][];//实例化交错数组

array1[0]=new int[3];//实例化子数组

array1[1]=new int[5];//实例化子数组


array1这个交错数组的每个子数组都是一个一维int类型数组,第一个元素是由3个int类型元素组成的数组,第二个元素是由5个int类型元素组成的数组。如果没有显式初始化,那么这两个子数组的元素仍将自动使用零进行初始化,也可以使用初始值显式初始化这些子数组元素,在这种情况下就不需要指定数组的大小,例如:


int[][]array1=new int[2][];

array1[0]=new int[]{1,2,3};

array1[1]=new int[]{4,5,6,7,8};


还可以在声明交错数组的同时进行初始化,如下:


int[][]array1=new int[2][]{

new int[]{1,2,3},

new int[]{4,5,6,7,8}

};


同样,此时顶级数组的长度也可以省略,如下:


int[][]array1=new int[][]{

new int[]{1,2,3},

new int[]{4,5,6,7,8}};


还可以进一步省略,因为在声明的语句中已经体现了是int[][]类型,因此实例化语句中的"new int[][]"也可以省略,如下:


int[][]array1={

new int[]{1,2,3},

new int[]{4,5,6,7,8}

};