【问题标题】:Java: length of multidimensional arraysJava:多维数组的长度
【发布时间】:2014-11-29 12:37:30
【问题描述】:

我正在使用 Eclipse Luna,我认为它有点错误,因为当我写的时候:

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

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

【问题讨论】:

  • 您对a[0]a[1] 的长度有何期望?它们应该不同吗?
  • 我用 goodle 来了解如何找到多维数组的长度,他们向我展示了这些技术:a[0].length、a[1].length、a[2]。长度,...
  • 在二维数组中,a[0]a[1] 引用数组中的一行。通常,它们应该是相同的长度。这同样适用于 3D 数组(尽管我会犹豫将其称为“行”)。
  • @TienDoNam :这适用于行具有不同大小但您声明数组的方式,它们都具有相同大小的情况
  • Eclipse Luna 没有错误。嗯,实际上,它是,但不是因为这个。这是正确的行为。

标签: java arrays


【解决方案1】:

这些输出完全正确。您有一个长度为 2 x 3 x 4 的 3 维数组,因此对于所有有效索引 i, j :

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

【讨论】:

  • stackoverflow.com/questions/7367218/… ... 所以我只是想念不明白,谢谢
  • 如果你仔细看这个问题的答案,数组并没有按照你的方式声明。回答的人没有指定每行的列数,然后分别分配不同长度的行。这就是他得到这些输出的原因。
猜你喜欢
  • 2011-08-22
  • 2023-02-25
  • 2021-04-24
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2013-08-21
相关资源
最近更新 更多