2014-10-04 105 views
-1

我使用的Eclipse红月和我认为这是一种越野车的,因为当我写:的Java:多维数组的长度

int[][][] a = new int[2][3][4]; 
System.out.println(a.length+" "+a[0].length+" "+a[1].length); 

的Eclipse显示我:

2 3 3 

,但如果我使用:

int[][][] a = new int[2][3][4]; 
System.out.println(a.length+" "+a[0].length+" "+a[0][0].length); 

的Eclipse显示我:

2 3 4 

我不明白为什么,但因为这个原因,我的整个项目不工作了......

+0

什么你期望“a [0]”和“a [1]”的长度吗?他们应该与众不同吗? – 2014-10-04 19:04:17

+0

我用goodle找出如何找到多维数组的长度,他们向我展示了这些工艺:a [0] .length,a [1] .length,a [2] .length,... – 2014-10-04 19:06:17

+0

In二维数组“a [0]”和“a [1]”指数组中的一行。通常,它们应该是相同的长度。这同样适用于3D阵列(尽管我会毫不犹豫地将其称为“行”)。 – 2014-10-04 19:08:24

回答

5

这些输出是完全正确的。你有长度的3维阵列2×3×4,从而对所有的有效索引I,J:

  • a.length是2
  • a[i].length是3
  • a[i][j].length是4
+0

http://stackoverflow.com/questions/7367218/getting-the-length-of-two-dimensional-array ...所以我只是想念不明白,谢谢 – 2014-10-04 19:09:39

+0

如果你看这个问题的答案非常接近,这个数组并没有像你所做的那样被宣布。回答者没有指定每行的列数,然后分别分配不同长度的行。这就是他得到这些输出的原因。 – Dici 2014-10-04 19:13:06