Чтобы выбрать конкретный элемент коллекции
AnyLogic предоставляет функции для выбора конкретного элемента из заданной коллекции.
Функция | Описание |
---|---|
top(collection, value) |
Возвращает элемент с максимальным значением в заданной коллекции. Пример: Person person = top( people, p -> p.age );. В этом примере мы получаем самый старый элемент коллекции people. Если коллекция пуста, функция вернет null. |
List filter(collection, condition) |
Возвращает подмножество указанной коллекции: новый список элементов, удовлетворяющих заданному условию. Примеры: List women = filter( people, p -> p.gender == FEMALE ); List idleTrucks = filter( trucks, t -> t.inState(Idle) ); |
List findAll(collection, condition) | Функция, идентичная следующей: filter(collection, condition). |
findFirst(collection, condition) |
Возвращает первый элемент указанной коллекции, для которого результат вычисления заданного условия равен true. Возвращает null, если такого элемента нет или коллекция пуста. Пример: Person person = findFirst( people, p -> p.age > 20 );. |
Чтобы выбрать случайный элемент коллекции
AnyLogic предоставляет функции для выбора случайного элемента из заданной коллекции. Эти функции определены в классе UtilitiesCollection и являются глобальными (доступными из любой части модельного кода). Любую функцию из списка ниже можно вызвать, просто напечатав ее имя, без префикса с именем коллекции: randomWhere( people, p -> p.income > 10000 );.
Функция | Описание |
---|---|
randomWhere(collection, condition) |
Возвращает один случайно выбранный элемент из заданной коллекции, который удовлетворяет заданному условию. Если коллекция пуста, или отсутствует элемент, удовлетворяющий заданному условию, функция вернет null. Примеры: Person wealthyPerson = randomWhere( people, p -> p.income > 10000 ); Person wealthyMan = randomWhere( people, p -> p.income > 10000 && p.sex == MALE ); В этом примере мы проверяем два условия (используем логический оператор AND &&, чтобы указать AnyLogic, что результаты вычислений обоих заданных условий должны быть равны true). Функция возвращает случайно выбранный элемент, удовлетворяющий обоим условиям. Person wealthyYoungMan = randomWhere( people, p -> p.income > 10000 && p.sex == MALE && p.age < 21 ); |
randomWhere(collection, condition, java.util.Random r) | Подобна randomWhere(коллекция, условие). Использует указанный нестандартный генератор случайных чисел для выбора элемента. |
-
Как мы можем улучшить эту статью?
-