Переменная представляет собой переменную любого скалярного типа или Java класса.
Коллекция представляет
собой группу объектов, известных как ее элементы.
Некоторые коллекции позволяют хранение нескольких одинаковых элементов,
некоторые - нет. Некоторые коллекции упорядочены, некоторые - нет. Коллекция используется
для задания объекта данных, объединяющего в себе сразу
несколько однотипных элементов. С помощью коллекций Вы можете хранить,
извлекать
и управлять агрегированными данными. Обычно коллекции представляют
элементы данных, которые образуют группу, например, очередь
(в этом случае элементы представляют собой людей, ожидающих в очереди)
или автопарк (элементы задают автомобили), или телефонный справочник
(коллекция хранит соответствие имен и телефонных номеров).
Как и все другие переменные AnyLogic, коллекции доступны из кода во время работы модели, Вы можете работать с элементами коллекции посредством ее программного интерфейса.
Чтобы
создать коллекцию
из
палитры Основная
на диаграмму класса активного объекта (или эксперимента).Имя – Имя коллекции.
Отображать имя – Если опция выбрана, то имя коллекции будет отображаться в графическом редакторе.
Исключить – Если опция выбрана, то коллекция будет исключена из модели.
На презентации – Если опция выбрана, то коллекция будет отображаться на презентации во время выполнения модели.
Уровень
доступа – Уровень доступа к коллекции.
Есть четыре уровня доступа:
private
– коллекция
доступна только из этого класса активного объекта
protected
- коллекция
доступна из этого класса активного объекта и
его подклассов
default
- коллекция
доступна из любого места модели
public
- коллекция
доступна из всех открытых моделей.
Сохранять при сохранении состояния модели – Если опция выбрана, то коллекция будет сохраняться при сохранении состояния модели.
Класс коллекции – Класс коллекции. Выберите один из наиболее часто используемых классов из выпадающего списка или самостоятельно введите имя Java класса, представляющего собой другую реализацию коллекции.
Тип элементов-ключей – [Виден, если Класс коллекции TreeMap, HashMap или LinkedHashMap] Тип элементов-ключей, поддерживаемых этой коллекцией.
Тип элементов-значений – [Виден, если Класс коллекции TreeMap, HashMap или LinkedHashMap] Тип элементов-значений, соответствующих ключам коллекции.
Существует несколько различных реализаций коллекций. Они отличаются способами хранения элементов данных и механизмами доступа к ним. В приведенной ниже таблице приводятся характеристики времени, требуемого на выполнение основных операций в различных реализациях коллекций (а именно, тип зависимости затрачиваемого на выполнение операции времени от размера коллекции):
| Операция | ArrayList |
LinkedList | HashSet | TreeSet |
| Получение размера | Постоянная | Постоянная | Постоянная | Постоянная |
| Добавление элемента | Постоянная | Постоянная | Постоянная | Логарифмическая |
| Удаление заданного элемента | Линейная | Линейная | Постоянная | Логарифмическая |
| Удаление по индексу | Линейная | Линейная | - | - |
| Получение элемента по индексу | Постоянная | Линейная | - | - |
| Проверка, содержит ли коллекция элемент | Линейная | Линейная | Постоянная | Логарифмическая |
AnyLogic поддерживает следующие реализации интерфейса коллекций, заданного
в Java
Collections Framework: ArrayList, LinkedList, HashSet, LinkedHashSet, TreeSet, HashMap, TreeMap.
Следующие две коллекции являются наиболее часто используемыми:
Реализация интерфейса List
в виде массива переменного размера. Реализует все опциональные операции
списка; разрешает добавление любых элементов, в том числе null. (Этот класс, грубо говоря,
эквивалентен классу Vector, за
исключением того, что он не синхронизирован).