web-dev-qa-db-fra.com

Différence entre NavigableSet, SortedSet et TreeSet dans Java

  • Un TreeSet place un élément dans ordre naturel ou par le comparateur fourni.
  • Un SortedSet est également conserve l'élément dans ordre naturel

Mais quelle est la différence entre eux et NavigableSet?
NavigableSets est-il utile?

Un exemple pour montrer son utilisation serait bien pour les débutants.

20
eagertoLearn

SortedSet est une interface (il définit la fonctionnalité) et Treeset est une implémentation. NavigableSet est également un sous-type d'interface de SortedSet.

Vous ne pouvez pas simplement écrire SortedSet<Integer> example = new SortedSet<Integer>();

Vous pouvez cependant écrire SortedSet<Integer> example = new TreeSet<Integer>();

Comme son nom l'indique, les NavigableSets sont plus utiles pour naviguer dans l'ensemble.

http://mrbool.com/overview-on-navigableset-subtype-of-Java-collections/25417 offre un bon didacticiel sur NavigableSets et certaines des méthodes disponibles lors de l'utilisation d'un, qui ne sont pas disponible dans un SortedSet.

21
josh

J'espère que vous trouverez utile l'extrait suivant de Java docs (voir le lien pour plus de détails):

Méthodes inférieur , étage , plafond et supérieur éléments de retour respectivement inférieurs, inférieurs ou égaux, supérieurs ou égaux et supérieurs à un élément donné.

3
ppawel

Je pense que this est une référence bien démontrée avec une explication décente.

2
MissingNumber

TreeSet implémente NavigableSet, et (interface) NavigableSet étend SortedSet

1
Asher A

NavigableSet ajoute des méthodes de navigation comme descendingIterator () et descendingSet (), plafond (), floor (), supérieur (), inférieur (), headSet (), tailSet (), subSet (), pollFirst () et pollLast ().

1
probalm