Java:多维数组问题

问题描述:

在多维数组中,是否可以使用长度变量来测量 以外的其他维度?Java:多维数组问题

+3

是的。问题是什么? – DRiFTy

是的。长度尺寸因行而异。您可以使用matrix[i].length来获得第i行的长度。如果你知道矩阵是方形的,反正所有的行长都等于matrix[0].length,所以没关系。

如果你想通过所有的元素进行迭代:

for(int i = 0; i < matrix.length; i++){ 
    for(int j < 0; j < matrix[i].length; j++){ 
     count += matrix[i][j]; 
    } 
} 

可应用于任意维数相同的原则。对于循环,每个维度需要1个嵌套循环。对于长度,每个括号部分实际上是一个新的元件,因此3D阵列ar将产生的2D阵列与ar[i],与ar[i][j] 1d和0D(数组类型的单个元件)与ar[i][j][k]

+0

不错,您指出Java的内存结构是多维数组的数组(阵列等)的数组,而不是传统的C模型。 – Rontologist

当然。

array.length; 
array[0].length; 
array[1].length; 
+0

这并不能完全解释数组[0]和数组[1]可以具有不同的长度。 – Rontologist

是。

@Test 
public void test(){ 
    long[][][] multi = new long[3][2][1]; 
    System.out.println(multi.length); //3 
    System.out.println(multi[0].length); //2 
    System.out.println(multi[0][0].length); //1 
} 

哦,不,你需要array[0].length获得第二个维度的尺寸,并array[0][0].length获得的第三长度。当然,数组不是矩阵,因此array[0].lengtharray[1].length可能会有所不同,具体取决于您在array[0]或存储的子数组的大小。 array[1]

+0

如果矩阵是正方形的,'array [i]'对于所有'i