如何询问二维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;
但这可能由于多种原因而失败:
- 数组必须为0,在这种情况下,您将获得exception; 和
- 您假设第一个数组元素的长度是行数。 如上例所示,这不一定正确。
数组是一个粗糙的工具。 如果你想要一个真正的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数组的第二维中的元素数,则答案是未定义的。