如何询问二维Java数组的行数?

时间:2009-11-09 02:35:21

标签: java

我应该如何询问二维数组它有多少行?

4 个答案:

答案 0 :(得分:16)

首先,Java技术上没有二维数组:它有数组数组。所以在Java中你可以这样做:

String arr[][] = new String[] {
  new String[3],
  new String[4],
  new String[5]
};

我想要了解的是上面不是矩形(如真正的二维数组那样)。

那么,你的数组数组是按行,然后是行或行然后是列?如果它是行然后列,那么很容易:

int rows = arr.length;

(来自上面的例子)。

如果您的数组是列,那么行就会出现问题。你可以这样做:

int rows = arr[0].length;

但这可能由于多种原因而失败:

  1. 数组必须为0,在这种情况下,您将获得异常;和
  2. 您假设第一个数组元素的长度是行数。这不一定正确,如上例所示。
  3. 阵列是一种粗糙的工具。如果你想要一个真正的2D对象,我强烈建议你找到或写一个行为正确的类。

答案 1 :(得分:9)

Object[][] data = ...
System.out.println(data.length); // number of rows
System.out.println(data[0].length); // number of columns in first row

答案 2 :(得分:5)

int[][] ia = new int[5][6];
System.out.println(ia.length);
System.out.println(ia[0].length);

答案 3 :(得分:1)

这取决于“多少行”的含义。

首先,二维数组实际上是Java中的一维数组的一维数组。并且不要求二维数组实际上是矩形的,甚至不要求填充第一维中的所有元素。

  • 如果要查找第一维中的元素数,答案就是array.length

  • 如果要查找矩形二维数组第二维中的元素数,答案是“array [0] .length。

  • 如果要查找非矩形或稀疏二维数组的第二维中的元素数,答案是未定义的。