Java:多维数组问题
是的。长度尺寸因行而异。您可以使用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]
不错,您指出Java的内存结构是多维数组的数组(阵列等)的数组,而不是传统的C模型。 – Rontologist
当然。
array.length;
array[0].length;
array[1].length;
这并不能完全解释数组[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].length
和array[1].length
可能会有所不同,具体取决于您在array[0]
或存储的子数组的大小。 array[1]
如果矩阵是正方形的,'array [i]'对于所有'i
是的。问题是什么? – DRiFTy