Объявление и инициализация массива массивов

Объявление массива массивов чрезвычайно похоже на объявление "обычного", "одномерного" массива:

int [] a; //это – одномерный массив

int [] [] b; //это – массив массивов, "двумерный" массив

Тот факт, что "двумерный" массив по сути дела является именно массивом массивов, позволяет инициализировать в каждой ячейке "внешнего" массива "внутренний" массив любого размера.

Например, класс

import java.util.*;

Class primer_arr2_1

{

static Scanner reader = new Scanner(System.in);

public static void main(String[] args)

{

int [] []a=new int[5][];

for (int i=0;i<a.length;i++)

a[i]=new int[i];

for (int i=0;i<a.length;i++)

System.out.println(Arrays.toString(a[i]));

}

}

выполняет следующие действия:

int [] []a=new int[5][]; Объявляет и инициализируем массив массивов размером в 5 ячеек; при этом уже на этапе объявления указано, что это будет массив массивов. Однако при этом внутренние массивы объявлены (так как дважды использованы квадратные скобки) – но еще не инициализированы. Именно поэтому внешний массив имеет размер (5 ячеек), а внутренние массивы не имеют пока никаких размеров (повторим еще раз – они объявлены, но не инициализированы).
for (int i=0;i<a.length;i++) a[i]=new int[i]; Инициализируются внутренние массивы, при этом размер каждого массива устанавливается равным номеру ячейки, с которой он связан. Между прочим, это позволяет создать в ячейке номер 0 ссылку на внутренний массив размером 0…
for (int i=0;i<a.length;i++) System.out.println(Arrays.toString(a[i])); Значения, содержащиеся во внутренних массивах, выводятся на экран. Поскольку "сознательно" значения в инициализированные внутренние массивы не заносились, они – "пустые", то есть содержат значения 0 (потому что речь идет о массиве типа int).

Результат вывода информации на экран при исполнении этого класса:

[]

[0]

[0, 0]

[0, 0, 0]

[0, 0, 0, 0]


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: