Si prega di controllare questo fuori: http://wiki3.cosc.canterbury.ac.nz/images/e/e9/JavaCollections.png
LinkedHashSet è quello che serve, perché è un'implementazione dell'interfaccia Set. Set ha una bellissima abitudine: non consente duplicati di default. Quindi, abbiamo finito con il tuo 1.
Che dire di 2? Sappiamo che abbiamo bisogno di un'implementazione Set, ma quale?
HashMap - è possibile memorizzare K, coppie V, ma non c'è nessun ordine.
TreeSet - questa è la soluzione più lenta, perché utilizza un metodo compareTo
per mantenere ordinati e ordinati tutti gli elementi. Questo è il motivo per cui puoi passare un comparatore ad esso, quando stai costruendo un TreeSet.
LinkedHashSet - Restituisce gli elementi in ordine di INSERIMENTO. È la versione ordinata di un HashSet.
Troverete una descrizione fresco qui: http://java67.blogspot.co.uk/2014/01/when-to-use-linkedhashset-vs-treeset-vs-hashset-java.html?_sm_au_=iVVMtMLHSDQ5P0P7
Naturalmente le prestazioni dipenderanno da dimensioni, frequenza delle operazioni, utilizzo della memoria, ecc. –