而且如果是Object[]...[][]完蛋了 Object[][][] x = new Object[3][][]; x[0] = new Object[2][]; x[0][0] = new int[3][4]; //int[][]=(int[])[]=(Object)[] x[0][1] = new int[4][5]; x[1] = new Object[3][][]........[];//也可以,Object[][][]......[]=(Object[][]....[])[]=Object[] ...
//initialize the array
int totalLen=0;
for(int i=0;i<rows;i++) totalLen+=array[i].length;
int[][][] x = new int[3][][];
x[0] = new int[2][];
x[0][0] = new int[3];
x[0][1] = new int[4];
x[1] = new int[3][];
x[1][0] = new int[3];
x[1][1] = new int[4];
x[1][2] = new int[5];
x[2] = new int[1][1];
System.out.println(Arrays.deepToString(x));//这句话是jdk1.5反正就是打印每一个元素[[[0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0]], [[0]]]
也就是说第一维x.length=3
而后第二维就有(最多)三个长度x[0~2].length;
第三维就有x[0][0~1].length, x[1][0~2].length; x[2][0].lengthjava的多维数组的含义和C不一样
比如有XXX[][][]这样一个数组x,假设第一维长n(x.length==n)
那么就说明x是由连续的n个元素组成,其中,每一个元素都是XXX[][]类型,当然也包括null,因为在编译期,null可视作任何对象类型,XXX[][]肯定是对象类型,而不是原生类型,哪怕XXX是原生类型,但其(多维)数组肯定是Object假设x的第m个元素x[m]长度o(x[m].length),那么就说明x[m]由连续的o个元素组成,其中,每一个元素都是XXX[][]类型(或null同上)假设x[m]的第a个元素长b,...以此类推,每次降低一维,直到降低到XXX类型,XXX类型如果是原生类型,则不能是null
classjava(原始野人)
yanxiazhiqiu
直接用于循环的时候也是先求一次值再循环?
int i=str.length ;
System.out.println(st.length*2);
x[0] = new Object[2][];
x[0][0] = new int[3][4]; //int[][]=(int[])[]=(Object)[]
x[0][1] = new int[4][5];
x[1] = new Object[3][][]........[];//也可以,Object[][][]......[]=(Object[][]....[])[]=Object[]
...