Многомерные массивы — это простое расширение концепции одномерных массивов. Двумерные, трёхмерные и массивы большей размерности логически следуют из неё.
Одномерные и многомерные массивы: сравнение
Рассмотрим пример одномерного массива типа float:
float[] reis = {12.23f, 350f, 4.45f};
Это одномерный массив из трёх элементов. Многомерные массивы (например, двумерные) — это массивы, элементами которых являются другие массивы. Вместо значения 12.23f мог бы быть другой массив. Каждый элемент внешнего массива — сам по себе массив. Это суть двумерного массива. Трёхмерные и массивы большей размерности следуют той же логике: каждый элемент является массивом меньшей размерности. Тип данных элементов может быть любым: float, int, char и т.д.
Двумерные массивы в Java
Запись двумерного массива отличается от одномерного. Например, для массива символов:
char[][] reis = new char[3][3]; // Двумерный массив 3x3
Создаётся двумерный массив 3×3. Для доступа к элементу указываются индексы по каждой размерности. Например, reis[0][1] обращается к элементу во втором столбце первой строки.
Массив можно заполнить при создании:
char[][] reis = {{'ч', 'к', 'о'}, {'с', 'и', 'м'}, {'в', 'о', 'л'}};
Выведем элемент на экран:
System.out.print(reis[0][1]); // Выведет 'к'
Работа с памятью
В старых версиях Java при работе с многомерными массивами возникали ошибки, связанные с выделением памяти. Для корректной работы необходимо явно выделять память для каждого внутреннего массива. Это можно сделать при инициализации (как показано выше) или с помощью циклов:
for (int i = 0; i < reis.length; i++) {
reis[i] = new char[3]; // Выделение памяти для каждого внутреннего массива
}
reis.length возвращает длину внешнего массива. В данном случае reis.length равно 3. После этого можно присваивать значения элементам массива. Даже без присваивания значений, лучше явно выделять память.
Трёхмерные и массивы большей размерности
Трёхмерные и массивы большей размерности аналогичны. Они представляют собой вложенные массивы, и для доступа к элементам требуется указать соответствующее количество индексов.
Многомерные массивы — мощный инструмент в Java. Понимание принципов работы и корректного выделения памяти позволит эффективно использовать их для решения различных задач. Несмотря на кажущуюся сложность, работа с ними проста при понимании принципов работы с одномерными массивами.