1. Использование массивов

Для создания массива необходимо использовать квадратные скобки, расположив, их справа от имени массива или от типа элементов, из которых будет состоять массив, например:

mtNumbers[];

int[] AnotherNumbers;

Допустимы оба варианта. При объявлении массивов в языке Java их размер не указывается. Приведенные выше две строки не вызывают резервирования памяти для массива. Здесь просто создаются ссылки на массивы, которые нельзя использовать без инициализации.

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

int[] AiiotherNumbers; AnotherNmnbers = new int[15];

В приведенной выше строке кода с помощью оператора new массиву AnotherNambers выделяется память для хранения пятнадцати целых чисел. Нумерация элементов в массивах начинается с нуля.

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

intTJ ColorRed= {255,255, 100, 0,10};

В приведенной выше строке кода создается массив ColorRed из пяти элементов.

Динамическая инициализация выполняется с использованием индекса массива, например, в цикле:

int nlnitialValue = 7; int[] AnouierNumbers; AnotherNumbers = new int[15]; for(int i = 0; i < 15; i++)

{

AnotherNumbers [i] = nlnitialValue;

}

Можно создавать массивы не только из переменных базовых типов, но и из произвольных объектов. Каждый элемент такого массива должен инициализироваться оператором new.

Массивы могут быть многомерными и несимметричными. В следующем примере создается массив массивов. В нулевом и первом элементе создается массив из четырех чисел, а во втором - из восьми:

int[][] nDim = new int[5][10]; nDim[0] = new int [4]; nDim[l] = new int [4]; nDim[2] = new int [8];

Приведенный ниже код создает традиционную матрицу из шестнадцати элементов типа double, каждый из которых инициализируется нулем. Внутренняя реализация этой матрицы - массив массивов типа double.

double matrix [][] = new double [4][4];

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

double matrix [][] = new double [4][]; matrix [0] = new double[4]; matrix[l] = new double[4]; matrix[2] = new double[4]; matrix[3] = { 0, 1, 2, 3 };

В следующем примере создается матрица размером 4 на 4 с элементами типа double, причем ее диагональные элементы (то есть, для которых х=у) заполняются единицами, а все остальные элементы остаются равными нулю.

class Matrix {

public static void main(String args[]) {

double m[][];

m = new double[4][4];

m[0][0] = 1;

m[l][l] = l;

m[2][2] = 1;

m[3][3] = l;

System.out.println(m[0][0] +" "+ m[0][l] +" "+ m[0][2] +" "+ m[0][3]); System.out.println(m[l][0] +" "+ m[l][l] +" "+ m[l][2] +" "+ m[l][3]); System.out.println(m[2][0] +" "+ m[2][l] +" "+ m[2][2] +" "+ m[2][3]); System.out.println(m[3][0] +" "+ m[3][l] +" "+ m[3][2] +" "+ m[3][3]);

} }

Виртуальная машина Java строго следит за тем, чтобы вы случайно не записали или не попытались получить значения, выйдя за границы массива. Если же вы попытаетесь использовать в качестве индексов значения, выходящие за границы массива - отрицательные числа, либо числа, которые больше или равны количеству элементов в массиве, то получите сообщение об ошибке.

Массивы в языке Java являются объектами встроенного класса. Для этого класса существует возможность определить размер массива, обратившись к элементу данных класса с именем length, например:

int[] AnomerNumbers;

AnotherNumbers = new int[15];

for(int i = 0; i < AnotherNrnnbers.lengm; i++)

{

AnotherNumbers [i] = nlnitialValue;

}

Для задания начальных значений многомерных массивов существует специальная форма инициализатора. В этом случае, во вложенных фигурных скобках указывается блок инициализации для элементов строки многомерного массива. Внутри инициализатора массива можно использовать не только литералы, но и выражения. Ниже показан пример класса, в котором находится максимальный элемент многомерного массива.

public class lrl {

//Объявление и инициализация массива intar[][]= {{1,2,3,4,5},

{6,7,60,9,10}, {11,12,13,14,15}};

//Конструктор по умолчанию public 1г1() { }

//Метод, возвращающий максимальное значение массива public int getMaxO

{

int max =0; for(inti=0;i<3;i++) {

for(intj=0;j<5;j++) {

if (ar[i][j] > max) {max = ar[i][j];}

}

}

return max;

}

public static void main(Strmg[] args) { lrl lrll =newlrl();

System.out.println("MaKCHMaribHoe число -' + lrl 1 .getMaxO);

}

}