logo

NavigableSet en Java

En Java, le NavigableSet est un sous-type de Ensemble trié interface. Cela nous permet d'effectuer diverses opérations comme obtenir les correspondances les plus proches pour une itération d'ordre décroissant d'élément donné et d'autres. Il fournit des méthodes pour naviguer à travers les éléments de l’ensemble.

Par exemple L'interface NavigableSet nous permet de naviguer dans l'ensemble dans l'ordre croissant et décroissant contrairement au SortedSet qui ne prend en charge que l'ordre croissant. Les classes qui implémentent l'interface NavigableSet sont Ensemble d'arbres  et  ConcurrentSkipListSet

  • NavigableSet étend SortedSet et fournit ainsi des méthodes comme first() last() headSet() tailSet() etc.
  • Il vous permet de naviguer dans les deux sens, par ordre croissant et décroissant.
  • L'implémentation la plus courante de NavigableSet est TreeSet.

Exemple: Cet exemple montre la création d'un NavigableSet à l'aide de TreeSet et l'ajout d'éléments qui les trie automatiquement par ordre croissant.



Java
// Java program to demonstrates  // the working of NavigableSet  import java.util.*; public class Geeks {  public static void main(String[] args) {  NavigableSet<Integer> ns = new TreeSet<>();  // Add elements to the set  ns.add(10);  ns.add(20);  ns.add(30);  ns.add(40);  ns.add(50);  System.out.println('Navigable Set: ' + ns);  } } 

Sortir
Navigable Set: [10 20 30 40 50] 


Le diagramme ci-dessous montre la structure d'héritage dans le cadre de collection Java lié aux ensembles.

NavigableSet-in-Java-avec-exemples' title=

TreeSet est une classe qui implémente NavigableSet qui à son tour étend SortedSet qui étend Ensemble .

Déclaration de NavigableSet

En Java, la déclaration de NavigableSet peut être déclarée comme suit :

NavigableSetsetName;

Note: ' Type' est le type d'élément dans l'ensemble (par exemple, chaîne entière, etc.) et setName est le nom de la variable.

Création d'objets NavigableSet

Nous ne pouvons pas créer directement un NavigableSet puisque c'est une interface. Au lieu de cela, nous utilisons une classe comme Ensemble d'arbres qui le met en œuvre. À l'aide de génériques, nous pouvons définir le type d'objets que l'ensemble stockera. Cet ensemble de type sécurisé peut être défini comme :

NavigableSetset = nouveau TreeSet();

Exemple: Cet exemple montre comment utiliser diverses méthodes de NavigableSet comme descedingSet() tailSet() lower() pollFirst() et pollLast() pour manipuler et parcourir un ensemble trié dans l'ordre normal et inverse.

Java
// Java Program to demostrates the  // working of various methods of NavigableSet import java.util.NavigableSet; import java.util.TreeSet; public class Geeks {  public static void main(String[] args)  {  NavigableSet<Integer> ns = new TreeSet<>();  ns.add(0);  ns.add(1);  ns.add(2);  ns.add(3);  ns.add(4);  ns.add(5);  ns.add(6);  // Get a reverse view of the navigable set  NavigableSet<Integer> revNs = ns.descendingSet();  // Print the normal and reverse views  System.out.println('Normal order: ' + ns);  System.out.println('Reverse order: ' + revNs);  NavigableSet<Integer> t = ns.tailSet(3 true);  System.out.println('3 or more: ' + t);  System.out.println('lower(3): ' + ns.lower(3));  System.out.println('floor(3): ' + ns.floor(3));  System.out.println('higher(3): ' + ns.higher(3));  System.out.println('ceiling(3): ' + ns.ceiling(3));  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollLast(): ' + ns.pollLast());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('Navigable Set: ' + ns);  System.out.println('pollFirst(): ' + ns.pollFirst());  System.out.println('pollLast(): ' + ns.pollLast());  } } 

Sortir:

Sortir' loading='lazy' title=

Effectuer diverses opérations sur NavigableSet

1. Ajout d'éléments : Nous pouvons utiliser le ajouter() méthode pour insérer des éléments dans NavigableSet. Les éléments sont stockés dans l'ordre trié, aucun doublon n'est autorisé et les valeurs nulles ne sont pas non plus acceptées par NavigableSet.

Exemple: Cet exemple montre l'ajout d'éléments à un NavigableSet à l'aide de add() où les doublons sont ignorés et les éléments sont triés par ordre croissant.

Java
// Java Program to demonstrates the working of add() import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('A');  System.out.println('NavigableSet: ' + ts);  } } 

Sortir
NavigableSet: [A B C] 


2. Accéder aux éléments : Après avoir ajouté les éléments, si nous souhaitons accéder aux éléments, nous pouvons utiliser des méthodes intégrées comme contient() d'abord() dernier() etc.

Exemple: Cet exemple montre l'ajout d'éléments à un NavigableSet vérifiant l'existence d'un élément et récupérant le premier et le dernier éléments.

Java
// Java program to demonstrates the  // working of contains() first() and last() method import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('A');  System.out.println('NavigableSet: ' + ts);  String s = 'D';  // Check if the above string exists in  // the NavigableSet or not  System.out.println('D exists in the NavigableSet?: '  + ts.contains(s));  // Print the first element in  // the NavigableSet  System.out.println('First Element of NavigableSet: '   + ts.first());  // Print the last element in  // the NavigableSet  System.out.println('Last Element of NavigableSet: '   + ts.last());  } } 

Sortir
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C 


3. Suppression d'éléments : Les valeurs peuvent être supprimées du NavigableSet à l'aide du retirer() sondagePremier() sondageDernier() .

Exemple: Cet exemple montre la suppression d'éléments du NavigableSet.

Java
// Java Program to demonstrates the working of remove() // pollFirst() and pollLast() method import java.io.*; import java.util.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('A');  ts.add('B');  ts.add('C');  ts.add('B');  ts.add('D');  ts.add('E');  System.out.println('NavigableSet: ' + ts);  // Removing the element b  ts.remove('B');  System.out.println('After removing element ' + ts);  // Remove the First element of TreeSet  ts.pollFirst();  System.out.println(  'After the removal of First Element ' + ts);  // Remove the Last element of TreeSet  ts.pollLast();  System.out.println(  'After the removal of Last Element ' + ts);  } } 

Sortir
NavigableSet: [A B C D E] After removing element [A C D E] After the removal of First Element [C D E] After the removal of Last Element [C D] 


4. Éléments itératifs : Il existe différentes manières de parcourir le NavigableSet. La plus connue consiste à utiliser le  amélioré pour la boucle.

Exemple: Cet exemple montre l'ajout d'éléments à un NavigableSet et son itération dans l'ordre croissant.

modèle de conception de constructeur
Java
// Java Program to iterate through NavigableSet import java.util.*; import java.io.*; class Geeks {  public static void main(String[] args)  {  NavigableSet<String> ts = new TreeSet<String>();  // Elements are added using add() method  ts.add('C');  ts.add('D');  ts.add('E');  ts.add('A');  ts.add('B');  ts.add('Z');  // Iterating though the NavigableSet  for (String i : ts)  System.out.print(i + ' ');  } } 

Sortir
A B C D E Z 

Méthodes

Voici les méthodes présentes dans l'interface NavigableSet. 

Méthodes

Description

 plafond(E e) Renvoie le plus petit élément de cet ensemble supérieur ou égal à l'élément donné ou null s'il n'existe pas d'élément de ce type.
descendantItérateur() Renvoie un itérateur sur les éléments de cet ensemble par ordre décroissant.
ensemble descendant() Renvoie une vue en ordre inverse des éléments contenus dans cet ensemble.
étage(E e) Renvoie le plus grand élément de cet ensemble inférieur ou égal à l'élément donné ou null s'il n'existe pas d'élément de ce type.
headSet (E vers élément) Renvoie une vue de la partie de cet ensemble dont les éléments sont strictement inférieurs à toElement.
headSet (E toElement booléen inclus) Renvoie une vue de la partie de cet ensemble dont les éléments sont inférieurs (ou égaux à si inclusif est vrai) à toElement.
supérieur(E e) Renvoie le plus petit élément de cet ensemble strictement supérieur à l'élément donné ou null s'il n'existe pas d'élément de ce type.
itérateur() Renvoie un itérateur sur les éléments de cet ensemble par ordre croissant.
inférieur(E e) Renvoie le plus grand élément de cet ensemble strictement inférieur à l'élément donné ou null s'il n'existe pas d'élément de ce type.
sondagePremier() Récupère et supprime le premier élément (le plus bas) ou renvoie null si cet ensemble est vide.
sondageDernier() Récupère et supprime le dernier élément (le plus élevé) ou renvoie null si cet ensemble est vide.

subSet(E fromElement booléen

deInclusive E àElement booléen àInclusive)

Renvoie une vue de la partie de cet ensemble dont les éléments vont de fromElement à toElement.
sous-ensemble (E de l'élément E à l'élément) Renvoie une vue de la partie de cet ensemble dont les éléments vont de fromElement inclus à toElement exclusif.
tailSet (E à partir d'Element)Renvoie une vue de la partie de cet ensemble dont les éléments sont supérieurs ou égaux à fromElement.
tailSet (E fromElement booléen inclus)Renvoie une vue de la partie de cet ensemble dont les éléments sont supérieurs (ou égaux à si inclusif est vrai) fromElement.

                                                                                                                                              
Méthodes héritées de l'interface java.util.SortedSet

Méthode

Description

comparateur()  Cette méthode renvoie le comparateur utilisé pour ordonner les éléments de cet ensemble ou null si cet ensemble utilise l'ordre naturel de ses éléments.
d'abord() Cette méthode renvoie le premier élément (le plus bas) présent dans cet ensemble.
dernier() Cette méthode renvoie le dernier élément (le plus élevé) présent dans l'ensemble.
séparateur()Crée un Spliterator sur les éléments de cet ensemble trié.

Méthodes héritées de l'interface java.util.Set

Méthode

Description

ajouter (élément) Cette méthode est utilisée pour ajouter un élément spécifique à l'ensemble. La fonction ajoute l'élément uniquement si l'élément spécifié n'est pas déjà présent dans l'ensemble, sinon la fonction renvoie False si l'élément est déjà présent dans l'ensemble.
ajouterTout(collection)  Cette méthode est utilisée pour ajouter tous les éléments de la collection mentionnée à l'ensemble existant. Les éléments sont ajoutés aléatoirement sans suivre aucun ordre précis.
clair()   Cette méthode est utilisée pour supprimer tous les éléments de l’ensemble mais pas pour supprimer l’ensemble. La référence de l'ensemble existe toujours.
contient (élément) Cette méthode est utilisée pour vérifier si un élément spécifique est présent ou non dans l'ensemble.
contientTout(collection) 

Cette méthode permet de vérifier si l'ensemble contient ou non tous les éléments présents dans la collection donnée.

Cette méthode renvoie vrai si l'ensemble contient tous les éléments et renvoie faux si l'un des éléments est manquant.

est égal() Compare l'objet spécifié avec cet ensemble pour l'égalité.
code de hachage()  Cette méthode est utilisée pour obtenir la valeur hashCode pour cette instance du Set. Il renvoie une valeur entière qui est la valeur hashCode pour cette instance du Set.
estVide() Cette méthode est utilisée pour vérifier si un NavigableSet est vide ou non.
supprimer (élément) Cette méthode est utilisée pour supprimer l'élément donné de l'ensemble. Cette méthode renvoie True si l'élément spécifié est présent dans l'ensemble sinon elle renvoie False.
supprimerTout(collection) Cette méthode permet de supprimer tous les éléments de la collection qui sont présents dans l'ensemble. Cette méthode renvoie true si cet ensemble a changé à la suite de l'appel.
retenirTout(collection) Cette méthode est utilisée pour conserver tous les éléments de l'ensemble qui sont mentionnés dans la collection donnée. Cette méthode renvoie true si cet ensemble a changé à la suite de l'appel.
taille() Cette méthode est utilisée pour obtenir la taille de l'ensemble. Cela renvoie une valeur entière qui signifie le nombre d'éléments.
versArray() Cette méthode est utilisée pour former un tableau des mêmes éléments que celui du Set.
 versTableau(T[] a)Renvoie un tableau contenant tous les éléments de cet ensemble ; le type d'exécution du tableau renvoyé est celui du tableau spécifié.

Méthodes déclarées dans l'interface java.util.Collection

MéthodeDescription
parallèleStream()Renvoie un Stream éventuellement parallèle avec cette collection comme source.
RemoveIf (Prédicatfiltre)Supprime tous les éléments de cette collection qui satisfont au prédicat donné.
flux()Renvoie un Stream séquentiel avec cette collection comme source.
versArray?(IntFunctiongénérateur)Renvoie un tableau contenant tous les éléments de cette collection en utilisant la fonction génératrice fournie pour allouer le tableau renvoyé.

Méthodes déclarées dans l'interface java.lang.Iterable

MéthodeDescription
pourChaque(Consommateuraction) Exécute l'action donnée pour chaque élément de l'Iterable jusqu'à ce que tous les éléments aient été traités ou que l'action lève une exception.