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

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

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

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

我想要了解的是上面不是矩形(如真正的2D数组)。

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

 int rows = arr.length; 

(来自上面的例子)。

如果您的数组是列然后行,那么您就遇到了问题。 你可以这样做:

 int rows = arr[0].length; 

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

  1. 数组必须为0,在这种情况下,您将获得exception; 和
  2. 您假设第一个数组元素的长度是行数。 如上例所示,这不一定正确。

数组是一个粗糙的工具。 如果你想要一个真正的2D对象,我强烈建议你找到或写一个行为正确的类。

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

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

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

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

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

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