NavigableSet a Java

NavigableSet a Java

En Java el Conjunt navegable és un subtipus de la Conjunt ordenat interfície. Ens permet realitzar diverses operacions com obtenir les coincidències més properes per a una iteració d'ordre descendent d'un element determinat i altres. Proporciona mètodes per navegar pels elements del conjunt.

Per exemple La interfície NavigableSet ens permet navegar pel conjunt en ordre ascendent i descendent a diferència del SortedSet que només admet l'ordre ascendent. Les classes que implementen la interfície NavigableSet són Conjunt d'arbres  i  ConcurrentSkipListSet

  • NavigableSet amplia SortedSet i, per tant, proporciona mètodes com first() last() headSet() tailSet() etc.
  • Permet navegar en ambdues direccions en ordre ascendent i descendent
  • La implementació més comuna de NavigableSet és TreeSet.

Exemple: Aquest exemple demostra la creació d'un NavigableSet mitjançant TreeSet i afegir-hi elements que els ordena automàticament en ordre ascendent.

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  );      }   }   

Sortida
Navigable Set: [10 20 30 40 50]  


El diagrama següent mostra l'estructura d'herència al marc de col·lecció de Java relacionada amb els conjunts.

NavigableSet-a-Java-amb-Examples

TreeSet és una classe que implementa Conjunt navegable que al seu torn s'estén SortedSet que s'estén Set .

Declaració de NavigableSet

A Java, la declaració de NavigableSet es pot declarar com:

Conjunt navegable setName;

Nota: ' Tipus és el tipus d'element del conjunt (per exemple, cadena entera, etc.) i setName és el nom de la variable.

Creació d'objectes NavigableSet

No podem crear un NavigableSet directament ja que és una interfície. En comptes d'això, fem servir una classe com Conjunt d'arbres que la implementa. Amb l'ajuda de genèrics podem definir el tipus d'objectes que emmagatzemarà el conjunt. Aquest conjunt segur de tipus es pot definir com:

Conjunt navegable set = nou TreeSet ();

Exemple: Aquest exemple mostra com utilitzar diversos mètodes de NavigableSet com descedingSet() tailSet() lower() pollFirst() i pollLast() per manipular i navegar per un conjunt ordenat en ordre normal i invers.

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  ());      }   }   

Sortida:

Sortida

Realització de diverses operacions a NavigableSet

1. Afegir elements: Podem utilitzar el afegir() mètode per inserir elements al NavigableSet. Els elements s'emmagatzemen en l'ordre ordenat, no es permeten duplicats i el NavigableSet tampoc accepta valors nuls.

Exemple: Aquest exemple mostra com afegir elements a un NavigableSet utilitzant add() on els duplicats s'ignoren i els elements s'ordenen en ordre ascendent.

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  );      }   }   

Sortida
NavigableSet: [A B C]  


2. Elements d'accés: Després d'afegir els elements, si volem accedir als elements, podem utilitzar mètodes integrats com conté () primer () darrer () etc.

Exemple: Aquest exemple mostra com afegir elements a un NavigableSet comprovant l'existència d'un element i recuperant el primer i l'últim element.

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  ());      }   }   

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


3. Eliminació d'elements: Els valors es poden eliminar del NavigableSet mitjançant l' eliminar () pollFirst() enquestaLast() .

Exemple: Aquest exemple demostra l'eliminació d'elements del 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  );      }   }   

Sortida
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. Elements iterants: Hi ha diverses maneres d'iterar a través del NavigableSet. El més famós és utilitzar el  millorat per bucle.

Exemple: Aquest exemple demostra l'addició d'elements a un NavigableSet i la iteració a través d'ell en ordre ascendent.

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     +     ' '  );      }   }   

Sortida
A B C D E Z  

Mètodes

Els següents són els mètodes presents a la interfície NavigableSet. 

Mètodes

Descripció

 sostre (E e) Retorna el menor element d'aquest conjunt més gran o igual que l'element donat o nul si no hi ha aquest element.
descendentIterator() Retorna un iterador sobre els elements d'aquest conjunt en ordre descendent.
conjunt descendent() Retorna una vista d'ordre invers dels elements continguts en aquest conjunt.
pis (E e) Retorna l'element més gran d'aquest conjunt menor o igual que l'element donat o nul si no hi ha aquest element.
Auriculars (E a ​​Element) Retorna una vista de la part d'aquest conjunt els elements de la qual són estrictament inferiors a toElement.
headSet(E toElement boolean inclòs) Retorna una vista de la part d'aquest conjunt els elements de la qual són menors que (o iguals que si l'inclou és cert) a Element.
superior (E e) Retorna el mínim element d'aquest conjunt estrictament més gran que l'element donat o nul si no hi ha aquest element.
iterador() Retorna un iterador sobre els elements d'aquest conjunt en ordre ascendent.
inferior (E e) Retorna l'element més gran d'aquest conjunt estrictament inferior a l'element donat o nul si no hi ha aquest element.
pollFirst() Recupera i elimina el primer element (el més baix) o retorna null si aquest conjunt està buit.
enquestaLast() Recupera i elimina l'últim element (el més alt) o retorna null si aquest conjunt està buit.

subconjunt (E de l'element booleà

fromInclusive E toElement boolean toInclusive)

Retorna una vista de la part d'aquest conjunt els elements van des de l'element fins a l'element.
subconjunt (E de l'element E a l'element) Retorna una vista de la part d'aquest conjunt els elements de la qual van des de l'element inclòs fins a l'exclusiu de l'element.
tailSet (E de l'element) Retorna una vista de la part d'aquest conjunt els elements de la qual són majors o iguals a fromElement.
tailSet (E de l'element booleà inclòs) Retorna una vista de la part d'aquest conjunt els elements de la qual són més grans que (o iguals que si inclusive és cert) fromElement.

                                                                                                                                              
Mètodes heretats de la interfície java.util.SortedSet

Mètode

Descripció

comparador ()  Aquest mètode retorna el comparador utilitzat per ordenar els elements d'aquest conjunt o nul si aquest conjunt utilitza l'ordenació natural dels seus elements.
primer () Aquest mètode retorna el primer element (el més baix) present en aquest conjunt.
darrer () Aquest mètode retorna l'últim element (el més alt) present al conjunt.
divisor () Crea un divisor sobre els elements d'aquest conjunt ordenat.

Mètodes heretats de la interfície java.util.Set

Mètode

Descripció

afegir (element) Aquest mètode s'utilitza per afegir un element específic al conjunt. La funció afegeix l'element només si l'element especificat ja no està present al conjunt, sinó la funció retorna False si l'element ja està present al conjunt.
addAll (col·lecció)  Aquest mètode s'utilitza per afegir tots els elements de la col·lecció esmentada al conjunt existent. Els elements s'afegeixen aleatòriament sense seguir cap ordre específic.
clar ()   Aquest mètode s'utilitza per eliminar tots els elements del conjunt però no eliminar el conjunt. La referència del conjunt encara existeix.
conté (element) Aquest mètode s'utilitza per comprovar si un element específic està present al conjunt o no.
conté tot (col·lecció) 

Aquest mètode s'utilitza per comprovar si el conjunt conté tots els elements presents a la col·lecció donada o no.

Aquest mètode retorna true si el conjunt conté tots els elements i retorna false si falta algun dels elements.

és igual a () Compara l'objecte especificat amb aquest conjunt per a la igualtat.
hashCode()  Aquest mètode s'utilitza per obtenir el valor hashCode per a aquesta instància del conjunt. Retorna un valor enter que és el valor hashCode per a aquesta instància del conjunt.
està buit() Aquest mètode s'utilitza per comprovar si un NavigableSet està buit o no.
eliminar (element) Aquest mètode s'utilitza per eliminar l'element donat del conjunt. Aquest mètode retorna True si l'element especificat està present al conjunt, en cas contrari retorna False.
removeAll (col·lecció) Aquest mètode s'utilitza per eliminar tots els elements de la col·lecció que estan presents al conjunt. Aquest mètode retorna true si aquest conjunt ha canviat com a resultat de la trucada.
retainAll (col·lecció) Aquest mètode s'utilitza per retenir tots els elements del conjunt que s'esmenten a la col·lecció donada. Aquest mètode retorna true si aquest conjunt ha canviat com a resultat de la trucada.
mida () Aquest mètode s'utilitza per obtenir la mida del conjunt. Això retorna un valor enter que indica el nombre d'elements.
toArray() Aquest mètode s'utilitza per formar una matriu dels mateixos elements que el del conjunt.
 toArray(T[] a) Retorna una matriu que conté tots els elements d'aquest conjunt; el tipus d'execució de la matriu retornada és el de la matriu especificada.

Mètodes declarats a la interfície java.util.Collection

Mètode Descripció
parallelStream() Retorna un flux possiblement paral·lel amb aquesta col·lecció com a font.
removeIf(Predicat filtre) Elimina tots els elements d'aquesta col·lecció que compleixen el predicat donat.
corrent () Retorna un flux seqüencial amb aquesta col·lecció com a font.
toArray? (Funció Int generador) Retorna una matriu que conté tots els elements d'aquesta col·lecció mitjançant la funció generadora proporcionada per assignar la matriu retornada.

Mètodes declarats a la interfície java.lang.Iterable

Mètode Descripció
per a cadascú (Consumidor acció) Realitza l'acció donada per a cada element de l'iterable fins que s'han processat tots els elements o l'acció genera una excepció.


Crea un qüestionari