Как только вы позвоните contains
, containsAll
, equals
, hashCode
, remove
, retainAll
, size
или toArray
, вам все равно придется пройти через элементы.
Если вы иногда вызываете только такие методы, как isEmpty
или clear
, я полагаю, вам было бы лучше, если бы коллекция создавалась лениво.Например, вы можете иметь поддержку ArrayList
для хранения ранее повторенных элементов.
Я не знаю ни одного такого класса в какой-либо библиотеке, но это должно быть довольно простое упражнение для записи.