1. Нерівні масиви
У Java ви, як програміст, можете не лише поміняти рядки двовимірного масиву місцями, але й сконструювати цей масив самостійно як заманеться.
Припустімо ви хочете, щоб перший рядок двовимірного масиву мав довжину 10
, а другий — 50
. Чи можна так зробити? Так, можна.
Спершу потрібно створити «контейнер контейнерів» — перший масив, який зберігатиме посилання на масиви-рядки. Це роблять так:
int[][] ім'я = new int[висота][];
Ви просто не вказуєте другий параметр, і Java-машина створює тільки «контейнер контейнерів». От що буде в пам'яті після виконання цього коду:

Ну а як створювати одновимірні масиви, ви вже знаєте 🙂
Остаточний вигляд коду буде таким:
|
Двовимірний масив Нульовий рядок — масив із 10 елементівПерший рядок — масив із 50 елементів. |
Щойно ви створили так званий «нерівний масив».
І от якщо ми захочемо вивести всі елементи цього масиву на екран, нам стане у великій пригоді властивість length
, адже рядки масиву мають різну довжину.
До речі, як визначити довжину «контейнера контейнерів» у нашому прикладі? Адже це теж об'єкт-масив, а значить, він має довжину. Правильна відповідь — matrix.length
.
А як щодо довжини масивів-рядків? matrix[0].length
2. Робота з двовимірними масивами
Припустімо, ви хочете вивести на екран двовимірний масив. Як же це зробити?
Наш код матиме приблизно такий вигляд:
|
Створення масиву Заповнення масиву значеннями Зовнішній цикл по рядках масиву — перебирає рядки масиву. Внутрішній цикл по комірках — перебирає комірки одного рядка. |
Вам знадобиться два вкладених цикли. Перший ми назвемо зовнішнім, а другий — внутрішнім.
У зовнішньому циклі (змінна i
) ми по черзі проходимо по всіх масивах-рядках, з яких складається наш двовимірний масив. Кожне значення змінної i
відповідає рядку масиву з таким номером.
У внутрішньому циклі (змінна j
) ми перебираємо всі комірки масивів-рядків. У результаті роботи внутрішнього циклу на екран буде виведено рядок, який складається зі значень одного рядка масиву.
От що буде виведено на екран:
Оброблено один рядок масиву |
|
Оброблено два рядки масиву |
|
Оброблено три рядки масиву |
|
3. Багатовимірні масиви
Ще один цікавий факт про масиви. Напевно, ви вже здогадуєтеся, про що йдеться. Якщо можна зробити двовимірний масив, значить, можна зробити й тривимірний?
Так, можна створити масив будь-якої розмірності. Такі масиви називають багатовимірними.
З цікавості спробуймо створити багатовимірний масив розмірності 4.
int[][][][] matrix = new int[2][3][4][5];
Занадто простий код, чи не так?
А якщо створити його вручну?
int[][][][] matrix;
matrix = new int[2][][][]; // створюємо масив «посилань на посилання на посилання» довжиною 2
for (int i = 0; i < matrix.length; i++)
{
matrix[i] = new int[3][][]; // створюємо масив «посилань на посилання» довжиною 3
for (int j = 0; j < matrix[i].length; j++)
{
matrix[i][j] = new int[4][]; // створюємо масив посилань довжиною 4
for (int k = 0; k < matrix[i][j].length; k++)
matrix[i][j][k] = new int[5]; // створюємо масиви цілих чисел довжиною 5
}
}
І це лише створення масиву! А з ним ще й працювати якось треба.
Бонусне завдання — написати код, який виводить на екран усі значення тривимірного масиву.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ