Esempio

List list = new ArrayList();
...

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

Soluzione
Nell'esempio fornito, il metodo "contains" dell'elenco eseguirà una ricerca lineare, che può risultare costosa se l'elenco è di dimensioni elevate. Se si modifica in una serie, non sarà necessario richiamare il metodo contains in quanto la serie garantisce l'univocità. Modifica suggerita:


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


Se l'ordine di inserimento è importante, utilizzare LinkHashSet invece di HashSet. Modifica suggerita:


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