Top.Mail.Ru

Перечень уроков по Java

6. Массивы

Массивконечная группа переменных одного типа, которой присвоено общее имя.

Так, совокупность целых чисел    -12, 14, 124, -1, 25  можно считать массивом и обозначить одним именем, например a.

Каждый элемент массива обозначается именем массива с индексом. Имя массива является единым для всех элементов. К каждому элементу массива можно обратиться с помощью индекса.  Индекс – целая величина, характеризующая положение элемента относительно начала массива. Нумерация элементов массива начинается с 0, т.е. индекс первого элемента равен 0.  Индекс записывается в квадратных скобках, например, a[0], 0 – это индекс, указывающий на первый элемент массива с именем a.

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

array0

 

Элемент массива с конкретным индексом ведёт себя также, как переменная. Например, чтобы вывести четвертый элемент массива(его индекс равен 3) мы должны написать:

System.out.println("Четвертый  элемент массива " + a[3]);

 Создание массива, а также объекта любого ссылочного типа  выполняется в три этапа:

  •      Объявление
  •      Выделение памяти
  •      Инициализация

Первые два этапа можно совместить.

 

Объявление

Имеется два формата объявления массива

тип[] имя_массива;

тип имя_массива[];

 различие состоит в местоположении скобок, которые являются элементом синтаксиса и указывают, что объявляется массив. Допустимы оба варианта, однако приветствуется первый вариант.

Тип  массива задает  тип  элементов массива. Все элементы массива должны быть одного типа.  

Примеры объявления массивов.

int[]  iarray;        //массив элементов типа int
double[] darray;       //массив элементов типа double
char[] charray;        //массив элементов типа char
boolean[] boolarray;   //массив элементов типа boolean

Выделение памяти

Если массив объявлен, то выделение памяти под элементы массива выполняется с помощью ключевого слова  new  следующим образом:

имя_массива   = new тип[размер];

Примеры.

iarray  = new int [10];  //выделяем память под 10 элементов типа int
darray = new double [20];  //выделяем память под 20 элементов типа double
charray = new char [30];  //выделяем память под 30 элементов типа char
boolarray=new boolean [5];  //выделяем память под 5 элементов типа boolean

После выделения памяти под массив (после создания массива) выполняются следующие свойства:

  • После создания, массивы Java всегда инициализированы.
  • Длина массива (количество элементов) хранится в поле c именем length.
  • После создания массива изменить его размер нельзя.
  • Если базовый тип массива примитивный, то в ячейках будут значения, соответсвующего  типа массива:

для типа int    - 0

для типа double – 0.0d

для типа float  - 0.0f

для типа char – ‘ ‘

для типа boolean - false 

  • Если базовый тип ссылочный – в ячейках будут значения  null.

 

Объявление и выделение памяти  можно совместить.

int[] iarray  = new int [10];   // память под 10 элементов типа int
double[] darray = new double [20];   //память под 20 элементов типа double
char[] charray = new char [30];     //памятьпод 30 элементовтипа char
boolean[]boolarray=new boolean [5]; //памятьпод 5 элементовтипа boolean

 

Инициализация массива

Процесс присваивания начальных условий называется инициализацией. Присвоение начальных значений элементам массива можно выполнять различными способами:

  • поэлементно
  • одновременно создавать и инициализировать
  • использовать операторы цикла
Поэлементная инициализация
Вот пример.

iarray[0]=10; //первому элементу приваивается значение 10 
iarray[1]=10; 
iarray[2]=10; 
iarray[3]=10; 
charray[0]=’Т’;  //первому элементу присваивается символ 'T'
charray[1]=’у’;
harray[2]=’р’;  
charray[3]=’б’;
charray[4]=’о’;

Использование операторов цикла

При работе с массивами наиболее часто используется оператор цикл for

Пример.

 Всем элементам одномерного массива darray  присвоить нуль:

for(int i=0;i< darray.lenght; i++) darray =0.0;

Вывести на экран элементы любого массива с именем a:

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

 System.out.print(darray[i]+" ");


Одновременное создание и инициализация

Если имеются начальные значения для массива, то создать массив и задать начальные условия можно так:

тип[] имя_массива = {элемент1, элемент2, … элемент(N-1), элементN};

В результате выполнения этого оператора будет создан массив, состоящий из N элементов. Обратите внимание, в данном случае не используется оператор new, а память выделяется под фактически указанное количество элементов N.

Вот пример.

int iday ={1,2,3,4,5,6,7};

Будет создан целочисленный массив, состоящий из 7 элементов: нулевой элемент массива iday[0] будет иметь значение  равное 1, а последний – шестой iday[6] значение 7.