Главная / Веб-программирование / Многомерные массивы в Java

Многомерные массивы в Java

В Java можно объявить массив массивов, известный как многомерный массив. К примеру:

int[][] a = new int[3][4];

Здесь мы видим двухмерный массив Java, который может содержать до 12 элементов типа int:

Многомерные массивы в Java

Не забывайте, что индексирование в Java начинается с нуля, поэтому первые элементы массива имеют индекс 0, а не 1.

Аналогично можно объявить и трёхмерный (3D) массив. Например:

String[][][] personalInfo = new String[3][4][2];

В примере выше personalInfo — это трёхмерный массив, в котором может быть до 24 (3*4*2) элементов типа String.

В Java составляющие многомерного массива — это тоже массивы. Если вы знаете C/C++, то может показаться, что многомерные массивы в Java и C/C++ работают одинаково. Но это не совсем так — в Java ряды массивов могут быть разной длины. Разницу мы увидим во время инициализации.

Как инициализировать двумерный массив в Java?

Ниже приводится пример инициализации двумерного массива Java:

int[][] a = {
{1, 2, 3},
{4, 5, 6, 9},
{7},
};

Каждый компонент массива также представляет собой массив, и длина каждого ряда отличается:

Многомерные массивы в Java

Давайте напишем программу, чтобы это доказать:

class MultidimensionalArray {
public static void main(String[] args) {

int[][] a = {
{1, 2, 3},
{4, 5, 6, 9},
{7},
};

System.out.println("Длина ряда 1: " + a[0].length);
System.out.println("Длина ряда 2: " + a[1].length);
System.out.println("Длина ряда 3: " + a[2].length);
}
}

При запуске этой программы мы получим:

Длина ряда 1: 3
Длина ряда 2: 4
Длина ряда 3: 1

Поскольку многомерный массив состоит из отдельных массивов (a[0], a[1] and a[2]), можно использовать метод length для определения длины каждого ряда длины двумерного массива Java.

Пример: вывод на экран всех элементов двумерного массива с помощью циклов:

class MultidimensionalArray {
public static void main(String[] args) {

int[][] a = {
{1, -2, 3},
{-4, -5, 6, 9},
{7},
};

for (int i = 0; i < a.length; ++i) {
for(int j = 0; j < a[i].length; ++j) {
System.out.println(a[i][j]);
}
}
}
}

Всегда лучше использовать цикл for…each, когда нужно пройти по элементам массива. Пример сортировки двумерного массива Java можно записать с помощью цикла for…each следующим образом:

class MultidimensionalArray {
public static void main(String[] args) {

int[][] a = {
{1, -2, 3},
{-4, -5, 6, 9},
{7},
};

for (int[] innerArray: a) {
for(int data: innerArray) {
System.out.println(data);
}
}
}
}

При запуске этой программы мы получим следующий результат заполнения двумерного массива Java:

1
-2
3
-4
-5
6
9
7

Как инициализировать трёхмерный массив в Java?

Трёхмерный массив инициализируется почти так же, как двухмерный:

// test — трёхмерный массив
int[][][] test = {
{
{1, -2, 3},
{2, 3, 4}
},
{
{-4, -5, 6, 9},
{1},
{2, 3}
}
};

Трёхмерный массив — это массив, состоящий из двумерных массивов. Как и у двумерных массивов Java, его ряды могут быть различной длины.

Пример: программа для вывода элементов трёхмерного массива с помощью циклов:

class ThreeArray {
public static void main(String[] args) {

// test – трёхмерный массив
int[][][] test = {
{
{1, -2, 3},
{2, 3, 4}
},
{
{-4, -5, 6, 9},
{1},
{2, 3}
}
};

// цикл for..each проходит по элементам трёхмерного массива
for (int[][] array2D: test) {
for (int[] array1D: array2D) {
for(int item: array1D) {
System.out.println(item);
}
}
}
}
}

При запуске программы вывода двумерного массива Java получаем следующий результат:

1
-2
3
2
3
4
-4
-5
6
9
1
2
3

Перевод статьи “Java Multidimensional Arrays” был подготовлен дружной командой проекта Сайтостроение от А до Я.

О нас seoexpert

продвижение сайта,seo оптимизация,поисковое продвижение,раскрутка сайтов,поисковая оптимизация,продвижение сайта в гугл,seo раскрутка,продвижение сайтов в яндексе,продвижение сайта в google,продвижение сайтов в топ 10,Оптимизация и продвижение сайтов,услуги продвижения сайта,заказать продвижение,продвижение сайтов в топ,сео раскрутка сайта

Смотрите также

Определение типа данных double в C, C++ и C#

Double – 64-разрядная переменная с плавающей запятой Тип double — это основной тип данных, который ...