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

Схематично двухмерный массивы можно представить таким образом:

arrayN2

Двумерный массив в 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

 

Добавить комментарий
  • Комментарии не найдены