Вводный курс. Язык программирования Java
- Вводный курс. Язык программирования Java
- Просмотров: 5120
6. Массивы
Массив – конечная группа переменных одного типа, которой присвоено общее имя.
Так, совокупность целых чисел -12, 14, 124, -1, 25 можно считать массивом и обозначить одним именем, например a.
Каждый элемент массива обозначается именем массива с индексом. Имя массива является единым для всех элементов. К каждому элементу массива можно обратиться с помощью индекса. Индекс – целая величина, характеризующая положение элемента относительно начала массива. Нумерация элементов массива начинается с 0, т.е. индекс первого элемента равен 0. Индекс записывается в квадратных скобках, например, a[0], 0 – это индекс, указывающий на первый элемент массива с именем a.
Схематично одномерный массив можно представить таким образом:
Элемент массива с конкретным индексом ведёт себя также, как переменная. Например, чтобы вывести четвертый элемент массива a (его индекс равен 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.