Чтобы повысить производительность простого свойства iterate-and-test-the, вам необходимо создать структуру данных, которая будет действовать как вторичный индекс для объектов в списке, и преобразовать предикат выбора в запросы к этому индексу. ,
Характер предикатов выбора будет определять, какие структуры данных индекса являются лучшими. Если вы собираетесь просто проверить на равенство свойств, тогда подойдет HashMap. Если вам нужно сравнить временные метки (до, после), тогда потребуется TreeMap.
Обратите внимание, что здесь есть компромисс. Вторичный индекс даст вам более быстрый поиск по списку, но стоимость будет увеличена сложность, и медленнее добавление и удаление списка. Таким образом, такие средние размеры списков и шаблоны использования будут определять, даст ли вторичный индекс общее улучшение производительности.
Если тестируемое свойство изменчиво / может измениться, пока объект находится в списке, вам потребуется обновлять вторичный индекс каждый раз, когда изменяется свойство объекта в списке. Реализация этого правильно добавит значительные дополнительные затраты и сложность.