Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Леднева_программирование_на_JAVA.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Одномерные массивы

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

Различают:

1-мерные массивы;

2-мерные массивы;

3-мерные и т.д.

Если в математике нумерация элементов массивов начинается с единицы, то в Java – с нуля.

Ниже приведены примеры индексации массивов в Java:

– одномерный массив

х0, х1, x2, x3, ..., xn; – 1 индекс

– двумерный массив (матрица) чисел

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

Для начала будем рассматривать одномерные массивы.

Размер или длина массива – это общее количество элементов в массиве. Размер массива задаётся при создании массива и не может быть изменён в дальнейшем, т.е. нельзя убрать элементы из массива или добавить их туда, но можно существующим элементам присвоить новые значения.

Индекс начального элемента – 0, следующего за ним – 1 и т.д. Индекс последнего элемента в массиве – на единицу меньше, чем размер массива, т.е. равен length-1.

В Java массивы являются объектами. Это значит, что имя, которое даётся каждому массиву, лишь указывает на адрес какого-то фрагмента данных в памяти. Кроме адреса в этой переменной ничего не хранится. Индекс массива, фактически, указывает на то, насколько надо отступить от начального элемента массива в памяти, чтоб добраться до нужного элемента.

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

Возможные следующие варианты объявления массива:

тип [] имя;

тип имя [];

где тип – это тип элементов массива, а имя – уникальный идентификатор.

Например:

int [] a;

double [] ar1;

double ar2 [];

Из примеров следует, что с именем a сможет быть далее связан массив из элементов типа int, а с именами ar1 и ar2 далее смогут быть связаны массивы из вещественных чисел (типа double). Пока массивы не созданы, а только заданы их имена и типы элементов.

Создать (инициализировать) массивы можно следующим образом:

// массив из 10 элементов типа int

a = new int[10];

// Массив из 5 элементов типа double

int n = 5;

ar1 = new double[n];

// Массив из 6 элементов типа double

ar2 = {3.14, 2.71, 0, -2.5, 99.123};

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

Если массив был создан с помощью оператора new, то каждый его элемент получает по умолчанию значение, равное нулю, которое при выводе на экран будет выглядеть как 0 для целочисленных и как 0.0 для вещественных типов данных.

Объявить массив и создать его одновременно можно следующим образом:

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

или

тип[] имя = {эл0, эл1, …, элN};

Примеры:

int[] mas1 = {10,20,30};

int[] mas2= new int[3];

Если необходимо обратиться к какому-то из элементов массива для того, чтобы прочитать или изменить его значение, нужно указать имя массива и за ним индекс элемента в квадратных скобках. Элемент массива с конкретным индексом ведёт себя также, как переменная. Например, чтобы вывести первый и последний элементы массива mas1, следует написать в программе:

System.out.println("1-й эл-т = " + mas1[0], “, последний эл-т =”+ mas1[mas1.length-1]); );

Присвоить элементам массива mas2 можно следующим образом:

mas2[0] = 10;

mas2[1] = 20;

mas2[2] = 30;

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

for(int i=0; i<=2; i++) {

mas2[i] = (i+1) * 10;

}

Длину любого созданного массива не обязательно запоминать, потому что имеется свойство, которое его хранит. Обратиться к этому свойству можно, дописав .length к имени массива. Например:

int razmer = mas1.length;

Это свойство нельзя изменять (т.е. ему нельзя ничего присваивать), можно только читать. Используя это свойство, можно не знать его конкретного размера.

Для обработки массивов обычно применяется цикл for, где параметром цикла является индекс элементов.

Заполнение массива случайно сгенерированными целыми числами:

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

ar1[i] = Math.floor(Math.random() * 10);

}

Ввод массива с клавиатуры приведен в следующем фрагменте:

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

ar1[i] = sc.nextInt() ;

}

Вывод на экран элементов массива продемонстрирован на следующем фрагменте кода:

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

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

}

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