Przykład

List list = new ArrayList();
...

if (!list.contains(someObject)) {
...
list.add(someObject);
...
}

Rozwiązanie
W tym przykładzie metoda "contains" listy List przeprowadza wyszukiwanie liniowe, które może być kosztowne, gdy lista jest duża. Po zmianie obiektu na zbiór nie będzie konieczności wywoływania metody contains, ponieważ typ Set gwarantuje unikalność. Sugerowana zmiana:


Set set = new HashSet();
...
set.add(someObject);
...


Jeśli istotna jest kolejność wstawiana, należy użyć metody LinkHashSet zamiast HashSet. Sugerowana zmiana:


Set set = new LinkedHashSet();
...
set.add(someObject);
...