(É possível usar com LinkedList também, mas a performance poderá ser menor do que a de percorrer a lista item-a-item).
Outra alternativa, se você for usar coleções ordenadas, é trocar sua ArrayList por um TreeSet, pois seu método contains é virtualmente instantâneo, e ele já proíbe duplicatas naturalmente.
O método contains, indicado pelo colega, também percorre item-a-item listas. Ele só é eficiente em sets e maps.
Nos Lists, a comparação é feita através do método equals da sua classe.
No HashSet e no HashMap, o hashCode é usado antes do equals, para otimizar a busca.
No TreeMap e no TreeSet, usa-se os comparators.[/quote]
Deixa ver se eu entendi…
Posso trocar a minha lista por um TreeSet e depois executar o método contains ?
tipo:
TreeSet<Item> lista = new TreeSet<Item>();
//populo a minha lista
//e lá pelas tantas...
Item item = new Item("5", "CINCO");
if (lista.contains(item)).....