AnyLogic
Развернуть
Размер шрифта

Массивы

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

int[] intarray = new int[100]; // массив из 100 целых чисел

Имя типа массива состоит из имени типа элементов массива, за которым следуют квадратные скобки, например:int[], double[], String[], Agent[]. Размер массива не является частью его типа. Распределение фактического размера выделяемой памяти для элементов массива осуществляется с помощью выражения инициализации new int[100], и именно здесь и задается размер массива. Обратите внимание, что пока Вы не проинициализируете массив, он будет равен null, и Вы не сможете получить доступ к его элементам.

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

Не обращайте внимания на флажок Массив в свойствах параметра: этот флажок выбирает для параметра тип HyperArray, используемый в системной динамике, но не делает его Java массивом.

Переменная-массив, объявленная графически

В случае такой инициализации массива всем его численным элементам будет присвоено значение 0, элементам логического типа boolean — значение false, а элементам всех остальных типов (включая String) — null. Другой способ — явно задать начальные значения для всех элементов массива. Синтаксис в этом случае будет следующий:

int[] intarray = new int[] { 13, x-3, -15, 0, max{ a, 100 ) }; 

Размер массива в данном случае определяется количеством выражений в скобках. Чтобы получить размер существующего массива вам необходимо ввести <имя массива="массива">.length, например:

intarray.length

Чтобы обратиться к iому элементу массива, необходимо ввести:

intarray[i]

Итерация по элементам массива осуществляется по индексу. Следующий цикл увеличивает значение каждого элемента массива на единицу (обратите внимание, что индексы элементов массива начинаются с 0):

for(int i=0; i<intarray.length; i++) {
  intarray[i]++;
}

Java также поддерживает упрощенную форму цикла for для массивов. Следующий код вычисляет сумму элементов массива:

int sum = 0;
for(int element : intarray) {
  sum+=element;
}

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

double[][] doubleArray = new double[10][20];
for(int i=0; i<doublearray.length; i++) {
  for(int j=0; j<doubleArray[i].length; j++ ) {
    doubleArray[i][j] = i * j;
  }
}

Многомерные массивы можно рассматривать как «массивы массивов». Массив, инициализированный следующим образом:

new double[10][20]

является массивом 10 массивов, каждый из которых содержит 20 значений типа double. Обратите внимание, что doublearray.length возвращает 10, а doubleArray[i].length возвращает 20.

Как мы можем улучшить эту статью?