Если у вас есть 54 коллекции в классе AnyLogic, вам действительно следует рассмотреть возможность рефакторинга вашей базовой структуры. Несколько альтернатив:
- Рассмотрим массив коллекций (или коллекцию коллекций). Если вы устанавливаете константы (static final int), вы можете легко сказать arrayCollection [CONSTANT]. Например, это может быть arrayWidgetsInProgess [PRODUCT_A], чтобы получить коллекцию виджетов типа product A.
- Рассмотрим только одну коллекцию и использование лямбда-выражений для получения интересующих вас объектов на лету. В AnyLogic это может быть фильтр (collection, agent -> agent.attribute == attributeWeWant).
Единственный раз, когда я действительно нуждался в таком количестве коллекций, это может быть случай, когда пользователь может что-то определять через интерфейс. Например, если у меня есть модель, в которой типы продуктов полностью определены пользователем, они могут иметь 10 или 100 типов продуктов. В этом случае я бы использовал коллекцию коллекций или массив или коллекции. Коллекция коллекций может быть arrayList из arrayLists, hashMap из arrayList, hashMap из hashMaps ...
Вы должны быть готовы к созданию экземпляра коллекции коллекций / массивов коллекций при запуске класса или в другом коде. Холст AnyLogic позволит вам создать массив коллекций, но затем вам нужно будет на самом деле создать экземпляр этих коллекций в массиве.