Вводный курс. Язык программирования Java
- Вводный курс. Язык программирования Java
- Просмотров: 4551
7. Многомерные массивы
Схематично двухмерный массивы можно представить таким образом:
Двумерный массив в Java — это массив массивов. Создание двумерного массива, также как и одномерного выполняется в три этапа:
- Объявление
- Выделение памяти
- Инициализация
1. Объявление
int [][] a;
2. Объявление и выделение памяти,
например, для первой размерности m=10 и второй размерности n=10
int [][] a = new int [10][10];
Особенность
В двумерном массиве каждый элемент первой размерности содержит другой одномерный массив. Операцией
new int [10][10];
мы выделили память под массив из 10 элементов. Но каждый элемент содержит другой одномерный массив и теперь необходимо выделить память под все 10 одномерных массивов. Делается это так:
for(int i = 0; i < a.length; i++)
{
a[i] = new int [10];
}
Таким образом, полный код создания двумерного массива может быть записан следующим образом:
int[][] a = new int [10][10];
for(int i = 0; i < a.length; i++)
{
a[i] = new int [10];
}
Создать двумерный массив можно без указания количества элементов второй размерности.
Пример. Создадим массива (таблицу) размерностью - 5 строк на 10 столбцов.
// объявляем и создаем массив из из 5 строк. Сколько элементов
//будет в каждой строке пока не известно.
int[][] a = new int[5][];
// объявляем и создаем 10 столбцов
for(int i = 0; i < a.length; i++)
{
a[i] = new int[10]; //таблица будет содержать десять столбцов
}
Вывод двумерного массива
Для вывода или обработки двумерных массивов используются два вложенных друг в друга цикла for c счётчиками:
- Для первой размерности: a.length – проходим по всем элементам, в нашем примере a.length = 3
- Для второй размерности: a[i].length, по все элементам i-строки в нашем примере a[i].length = 3
for(int i=0; i<a.length; i++) {
for(int j=0; j<a[i].length; j++) {
System.out.print(a[i][j] + "\t"); // \t табуляция
}
System.out.println(); // Переходим на следующую строку
}
3. Инициализация массива
Для инициализации двумерного массива можно использовать вложенные циклы for.
Пример. Создадим и заполним массив типа int a[3][5] случайным образом.
int[][] a = new int[3][];
// объявляем и создаем 5 столбцов
for(int i = 0; i < a.length; i++)
{
a[i] = new int[5]; //таблица будет содержать пять столбцов
}
//заполняем массив случайным образом
for(int i=0; i<a.length; i++)
for(int j=0; j<a[i].length; j++)
a[i][j] = (int)(Math.random()*10); //получаем случайные значения
//выводим массив
for(int i=0; i<a.length; i++) {
for(int j=0; j<a[i].length; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println(); // Переход на следующую строку
}
Результат:
3 6 9 6 2
2 1 2 8 9
9 0 1 4 1
Инициализировать двумерный массив, явно указав значения его элементов можно так:
int a[][]= {{1,2,3},{4,5,6}, {7,8,9}};
В результате получим такой вот массив:
1 2 3
4 5 6
7 8 9