Java для начинающих: Многомерные массивы

Многомерные массивы — это простое расширение концепции одномерных массивов. Двумерные, трёхмерные и массивы большей размерности логически следуют из неё.

Одномерные и многомерные массивы: сравнение

Рассмотрим пример одномерного массива типа 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. Понимание принципов работы и корректного выделения памяти позволит эффективно использовать их для решения различных задач. Несмотря на кажущуюся сложность, работа с ними проста при понимании принципов работы с одномерными массивами.

Что будем искать? Например,программа