Il vero potere e il vantaggio di TreeSet sta nel interfaccia realizza - NavigableSet
Perché è così potente e in tal caso?
navigabile Set interfaccia aggiungere ad esempio questi 3 metodi curato:
headSet(E toElement, boolean inclusive)
tailSet(E fromElement, boolean inclusive)
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
Questi metodi consentono di organizzare algoritmo di ricerca efficace (molto veloce).
Esempio: abbiamo bisogno di trovare tutti i nomi che iniziano con Milla e terminare con Wladimir:
TreeSet<String> authors = new TreeSet<String>();
authors.add("Andreas Gryphius");
authors.add("Fjodor Michailowitsch Dostojewski");
authors.add("Alexander Puschkin");
authors.add("Ruslana Lyzhichko");
authors.add("Wladimir Klitschko");
authors.add("Andrij Schewtschenko");
authors.add("Wayne Gretzky");
authors.add("Johann Jakob Christoffel");
authors.add("Milla Jovovich");
authors.add("Taras Schewtschenko");
System.out.println(authors.subSet("Milla", "Wladimir"));
uscita:
[Milla Jovovich, Ruslana Lyzhichko, Taras Schewtschenko, Wayne Gretzky]
TreeSet non va oltre tutti gli elementi, si trova prima e ultima elemenet e restituisce una nuova Collezione con tutti gli elementi della gamma.
Non voglio iniziare una risposta extra perché alcuni sono già stati dati, ma voglio aggiungere un altro fatto: hai parlato di aggiungere/rimuovere dati. Che dire dell'aggiornamento? Si prega di essere consapevoli del fatto che un TreeSet non aggiorna mai il suo ordinamento se si cambiano gli oggetti elemento per quanto riguarda la loro "chiave di ordinamento". Se vuoi farlo, usa la mia classe [UpdateableTreeSet] (http://stackoverflow.com/a/11169301/1082681) o qualcosa di simile. Potrebbe essere un fattore decisivo se hai oggetti con lo stato di modifica. – kriegaex