La puissance réelle et l'avantage de TreeSet se trouve dans l'interface, il se rend compte - NavigableSet
Pourquoi est-il si puissant et dans ce cas?
set interface Navigable ajouter par exemple ces 3 méthodes agréable:
headSet(E toElement, boolean inclusive)
tailSet(E fromElement, boolean inclusive)
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
Ces méthodes permettent d'organiser l'algorithme de recherche efficace (très rapide).
Exemple: nous devons trouver tous les noms qui commencent par Milla et se terminent par 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"));
sortie:
[Milla Jovovich, Ruslana Lyzhichko, Taras Schewtschenko, Wayne Gretzky]
TreeSet ne va pas sur tous les éléments, il trouve premier et dernier elemenets et retourne une nouvelle collection avec tous les éléments de la gamme.
Je ne veux pas commencer une réponse supplémentaire parce que certains ont déjà été donnés, mais je tiens à ajouter un autre fait: Vous avez parlé d'ajouter/supprimer des données. Et la mise à jour? Sachez qu'un TreeSet ne mettra jamais à jour son ordre de tri si vous changez les objets d'élément en fonction de leur "clé de tri". Si vous voulez faire cela, utilisez ma classe [UpdateableTreeSet] (http://stackoverflow.com/a/11169301/1082681) ou quelque chose de similaire. Cela peut être un facteur décisif si vous avez des objets avec un changement d'état. – kriegaex