При выполнении действий над агентами популяции может возникнуть необходимость упорядочить их по определенному значению. Нет необходимости изменять порядок агентов в популяции. Можно получить упорядоченный список агентов с помощью следующих функций AnyLogic:
- java.util.List<T> sortAscending(популяция, значение) — Возвращает новый список агентов из заданной популяции с измененным порядком, значения расположены в возрастающем порядке.
- java.util.List<T> sortDescending(популяция, значение) — Возвращает новый список агентов из заданной популяции с измененным порядком, значения расположены в убывающем порядке.
Примеры:
List sortedByAgeAsc = sortAscending( people, p -> p.age );
List sortedByIncomeDesc = sortDescending( people, p -> p.income );
Если вам нужно перемешать заданный список случайным образом, воспользуйтесь функцией void shuffle(java.util.List<?> list). Все перестановки производятся с одинаковой вероятностью. Данная функция проходит по списку с конца до начала, подставляя случайный элемент списка на свое «текущее положение». Элементы выбираются случайно: с первого до находящегося на «текущей позиции» включительно.
Данный метод работает в линейном времени.
-
Как мы можем улучшить эту статью?
-