Как мне задать вопрос о том, сколько строк у него есть 2-мерный массив?
Как спросить двумерный массив Java для его количества строк?
Ответ 1
Во-первых, Java технически не имеет 2-мерных массивов: он имеет массивы массивов. Поэтому в 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, в этом случае вы получите исключение; и
- Вы предполагаете, что длина первого элемента массива - это количество строк. Это не обязательно правильно, как показывает приведенный выше пример.
Массивы являются грубым инструментом. Если вам нужен настоящий 2D-объект, я настоятельно рекомендую вам найти или написать класс, который ведет себя корректно.
Ответ 2
Object[][] data = ...
System.out.println(data.length); // number of rows
System.out.println(data[0].length); // number of columns in first row
Ответ 3
int[][] ia = new int[5][6];
System.out.println(ia.length);
System.out.println(ia[0].length);
Ответ 4
Это зависит от того, что вы подразумеваете под "количеством строк".
Для начала 2-мерный массив на самом деле представляет собой 1-мерный массив 1-D массивов в Java. И нет требования, чтобы двухмерный массив был фактически прямоугольным, или даже, что все элементы в первом измерении заполнены.
-
Если вы хотите найти количество элементов в первом измерении, ответ будет просто
array.length
. -
Если вы хотите найти число элементов во втором измерении прямоугольного двумерного массива, то ответ будет `array [0].length.
-
Если вы хотите найти количество элементов во втором измерении непрямоугольного или разреженного 2-D массива, ответ будет undefined.