2011-09-06 155 views

回答

3

是的。長度尺寸因行而異。您可以使用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

0

當然。

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

這並不能完全解釋數組[0]和數組[1]可以具有不同的長度。 – Rontologist

2

是。

@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 
} 
0

哦,不,你需要array[0].length獲得第二個維度的尺寸,並array[0][0].length獲得的第三長度。當然,數組不是矩陣,因此array[0].lengtharray[1].length可能會有所不同,具體取決於您在array[0]或存儲的子數組的大小。 array[1]

+0

如果矩陣是正方形的,'array [i]'對於所有'i