开始时搞不懂初始化顺序,后来成功了,就顺手记录下来.
首先应该知道数组是一个类,类是引用类型,那么初始化就应该用new,否则就不分配内存,只是一个名字而已。
先想一想二维正交数组:
int[][] smallarray = new int[2][];
smallarray[0] = new int[2];
smallarray[1] = new int[3];
此时如果将后两句屏蔽,输出smallarray[0][0]就出现问题,必须要new到最小维,并且由多维到底维。
同样三维正交数组也一样,顺序为:
int[][][]array = new int[2][][];
array[0] = smallarray; //用已有的二维正交数组进行初始化
array[1] = new int[2][]; //和创造二维数组一样创建
array[1][0] = new int[2] { 1,3};
array[1][1] = new int[3] { 5,8,3};
注意只有将最小维都new完以后才可以对其上的某个元素赋值,其实就是一层一层的关系,必须按照顺序来