Массивы
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция № 5
5. МАССИВЫ
Создание и инициализация массивов
Массивом называется множество переменных одного типа. Это множество имеет собственное имя. Каждая переменная в данном массиве называется элементом массива. Чтобы сослаться на определённый элемент в массиве необходимо указать имя массива, а следом в квадратных скобках – индекс (порядковый номер) элемента массива, задаваемый целым значением. Индекс указывает на позицию конкретного элемента относительно начала массива. Первый элемент будет иметь индекс 0, второй имеет индекс 1, третий - индекс 2 и так далее.
Объявление в Java переменной-массива, содержащего целые числа:
int[] intarray;
или
int intarray[];
После объявления переменной-массива необходимо создать сам массив и инициализировать его – наполнить данными.
В AnyLogic для создания и инициализации массива используется поле «Начальное значение» переменной. На рисунке показан пример создания массива целого типа, содержащего 100 элементов.
Пример одновременного создания и инициализации массива в AnyLogic (запись помещается в поле «Начальное значение» переменной)
new int[] { 13, x-3, -15, 0, max(a,100) };
или в программе на языке Java
int[] intarray = new int[] { 13, x-3, -15, 0, max( a, 100 ) };
Данный массив будет содержать 5 элементов. Как видно из приведённых примеров, при задании численных значений элементов массива допускается использовать математические функции, а также другие переменные.
Пример создания массива строковых переменных
String[] список = new String[] { “Света”, “Таня”, “Маша” };
Для обращения к элементу массива указывается имя массива и заключённый в квадратные скобки индекс (номер) требуемого элемента. Первый элемент массива имеет номер 0. Например, на первый элемент массива intarray (из примера выше) можно ссылаться, указав intarray [0], на пятый элемент – intarray [4] и т.д. Аналогичным образом производится запись значений элементов массива как при использовании массива, так и при инициализации массива, например
intarray [0] = 13;
intarray [1] = x-3;
intarray [2] = 0;
intarray [4] = max(a,100);
Размер существующего массива (число элементов в массиве) является значением атрибута length этого массива. Например, для массива intarray в результате выполнения кода
int размерМассива = intarray.length;
System.out.println(размерМассива);
на печать будет выведено «5».
Многомерные массивы
Массивы могут быть многомерными. Следующий фрагмент кода создаёт двумерный массив значений типа double
double[][] двумерныйМассив = new double[10][20];
int числоСтрок = двумерныйМассив.length;
int числоСтолбцов = двумерныйМассив[0].length;
System.out.println(“Двумерный массив содержит ”+ числоСтрок + ” строк и ” + числоСтолбцов + ” столбцов”);
В результате выполнения данного цикла будет напечатано «Двумерный массив содержит 10 строк и 20 столбцов».
Многомерный массив можно представлять как массив массивов. Массив, проинициализированный как new double [10][20] является массивом из 10 массивов, каждый из которых хранит по 20 значений типа double.
При инициализации многомерных массивов используют дополнительные фигурные скобки, например, в программе на языке Java
int[][] intarrayD = {
{ 1, 2, 3 },
{ 4, 5, 6 }
}
или при указании начального значения переменной-массива в AnyLogic
new int[][] {{ 1, 2, 3 },{ 4, 5, 6 }}
Данный массив будет содержать две строки, в каждой из которых находится три элемента. Представление созданного в предыдущем примере массива форме таблицы
Индексы строк
Индексы столбцов
1
2
1
2
3
1
4
5
6
Элемент массива intarrayD[1][2], например, будут равен 6.
Печать содержимого массивов
Для вывода на печать значений элементов одномерного массива используется метод Arrays.toString(имя одномерного массива), который возвращает строку символов, являющихся представлением содержимого этого массива, например, для рассматриваемого массива intarray
int a = 200;
int x = 10;
int[] intarray = new int[] { 13, x-3, -15, 0, max{ a, 100 ) };
System.out.println(Arrays.toString(intarray));
будет напечатано [13, 7, -15, 0, 200].
Для вывода на печать значений элементов многомерного массива используется другой метод Arrays.deepToString(имя многомерного массива), например, для рассматриваемого двумерного массива intarrayD в результате выполнения следующего оператора
System.out.println(Arrays.deepToString(intarrayD));
будет напечатано [[1, 2, 3], [4, 5, 6]].
Заполнение одномерных массивов
При необходимости заполнить все элементы одномерного массива одинаковым значением используется метод Arrays.fill(имя массива, значение элементов), например
int size = 4;
boolean[] test1 = new boolean[size];
int[] test2 = new int[size];
String[] test3 = new String[size];
Arrays.fill(test1, true); // присваиваем всем элементам массива test1 значение true
System.out.println(Arrays.toString(test1));
Arrays.fill(test2, 9); // присваиваем всем элементам массива test2 значение 9
System.out.println(Arrays.toString(test2));
Arrays.fill(test3, "Тест"); // присваиваем всем элементам массива test3 значение «Тест»
System.out.println(Arrays.toString(test3));
В результате выполнения программы будут напечатано
[true, true, true, true]
[9, 9, 9, 9]
[Тест, Тест, Тест, Тест]
Сравнение массивов
Для сравнения двух массивов используется метод equals(). Чтобы два массива считались равными, они должны содержать одинаковое количество элементов, и каждый элемент должен быть эквивалентен соответствующему элементу другого массива, например, в результате выполнения следующего кода
int[] a1 = new int[10];
int[] a2 = new int[10];
// заполняем массивы девятками
Arrays.fill(a1, 9);
Arrays.fill(a2, 9);
System.out.println("Результат сравнения массивов: " + Arrays.equals(a1, a2));
будет напечатано: Результат сравнения массивов: true.
Изменим один элемент у второго массива
a2[3] = 11;
System.out.println("Результат сравнения массивов: " + Arrays.equals(a1, a2));
Теперь при сравнении будет напечатано: Результат сравнения массивов: false.
ЗАДАНИЕ Заполнить массив в AnyLogic и в поле действия при запуcке свойств main продемонстрировать (написать код) владение методами работы с массивами. Прошу прикреплять архивированную папку с моделью