Ответ 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-объект, я настоятельно рекомендую вам найти или написать класс, который ведет себя корректно.