Реклама:

Здесь определены две переменные - ссылки a и b на одномерные массивы типа double. Можно поставить квадратные скобки и после имени переменной: int i = 0, arr[], k = -1;

Здесь определены две переменные целого типа i и k, и объявлена ссылка на целочисленный массив arr. В скобках можно указать размер массива. Пустые скобки говорят компилятору, что размер массива не ограничен и память для него будет выделяться в процессе выполнения программы.

Затем указывается количество элементов массива, для того, чтобы выделить память под массив, переменная-ссылка получает адрес массива. Эти действия производятся операцией new. Например, а = new double[5]; b = new double[100]; arr = new int[50];

Отметим, что индексы массивов всегда начинаются с нуля. Индексы можно задавать любыми целочисленными выражениями, кроме типа long, например, a[i + j], a[i%5], a[++i]. Исполняющая система Java следит за тем, чтобы значения этих выражений не выходили за границы длины массива.

На последнем этапе производится инициализация массива, элементы массива получают начальные значения. Например, а[0] = 0.01; а[1] = -3.4; а[2] = 2:.89; а[3] = 4.5; а[4] = -6.7; for (int i = 0; i < 100; b[i] = 1.0 /i;

for (int i = 0; i < 50; arr[i] = 2 * i + 1;

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

Double[] a = new double[5], b = new double[100]; int i = 0, arr[] = new int[50], k = -1;

Можно сразу задать и начальные значения, записав их в фигурных скобках через запятую в виде констант или константных выражений. При этом необязательно указывать количество элементов массива, оно будет равно количеству начальных значений;

double[] а = {0.01, -3.4, 2.89, 4.5, -6.7};

Можно совместить второй и третий этап: а = new double[] {0.1, 0.2, -0.3, 0.45, -0.02};

Ссылка на массив не является частью описанного массива, ее можно перебросить на другой массив того же типа операцией присваивания. Например, после присваивания а = b обе ссылки а и b указывают на один и тот же массив из 100 вещественных переменных типа double и содержат один и тот же адрес.

Ссылка может присвоить «пустое» значение null, не указывающее ни на какой адрес оперативной памяти: arr = null;

После этого массив, на который указывала данная ссылка, теряется, если на него не было других ссылок.

Кроме простой операции присваивания, со ссылками можно производить еще только сравнения на равенство, например, а == b, и неравенство, а ! = b. При этом сопоставляются адреса, содержащиеся в ссылках, мы можем узнать, не ссылаются ли они на один и тот же массив.

Кроме ссылки на массив, для каждого массива автоматически определяется длина массива как целая константа с именем length. Для каждого массива имя этой константы уточняется именем массива через точку. Например, константа a.length равна 5. Последний элемент массива а можно записать так: a[a.length- 1].

Массив символов в Java не является строкой, даже если он заканчивается нуль-символом ' \uOOOO'.

Многомерные массивы. В Java они реализованы как массивы массивов. Элементы массива первого уровня снова являются массивами, причем не требуется, чтобы длины массивов второго уровня были бы одинаковы. Двумерный массив в Java не обязан быть прямоугольным. Многомерный массив можно объявить таким образом: char[][] с; или


⇐ Предыдущая страница| |Следующая страница ⇒