Exemple

List list = new ArrayList();
...

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

Solution
Dans l'exemple ci-dessus, la méthode List "contains" lancera une recherche linéaire, ce qui peut être lourd si la liste est importante. Si vous utilisez set en lieu et place, il ne vous sera pas nécessaire d'appeler contains dans la mesure où set garantit l'unicité, ce qui donnera :


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


Si l'ordre d'insertion est important, utilisez LinkHashSet au lieu de HashSet, ce qui donnera :


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