NavigableSet Java nyelven

NavigableSet Java nyelven

A Java nyelven a NavigableSet altípusa a SortedSet felület. Lehetővé teszi számunkra, hogy különféle műveleteket hajtsunk végre, mint például a legközelebbi egyezések megszerzése egy adott elemhez, csökkenő sorrendű iteráció és mások. Módszereket biztosít a halmaz elemei közötti navigáláshoz.

Például A NavigableSet felület lehetővé teszi, hogy növekvő és csökkenő sorrendben is navigáljunk a halmazban, ellentétben a SortedSet-tel, amely csak a növekvő sorrendet támogatja. A NavigableSet felületet megvalósító osztályok a következők TreeSet  és  ConcurrentSkipListSet

  • A NavigableSet kiterjeszti a SortedSet-et, és így olyan módszereket biztosít, mint a first() last() headSet() tailSet() stb.
  • Lehetővé teszi a navigációt mindkét irányban növekvő és csökkenő sorrendben
  • A NavigableSet leggyakoribb megvalósítása a TreeSet.

Példa: Ez a példa bemutatja egy NavigableSet létrehozását a TreeSet segítségével, és elemek hozzáadását, amelyek automatikusan növekvő sorrendbe rendezik őket.

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

Kimenet
Navigable Set: [10 20 30 40 50]  


Az alábbi diagram bemutatja a Java halmazokhoz kapcsolódó gyűjteményi keretrendszerének öröklődési struktúráját.

NavigableSet-in-Java-with-Examples

A TreeSet egy osztály, amely megvalósítja NavigableSet ami viszont kiterjeszti a SortedSet ami kiterjeszti Készlet .

A NavigableSet nyilatkozata

Java-ban a NavigableSet deklarációja a következőképpen deklarálható:

NavigableSet setName;

Megjegyzés: ' A Type' az elem típusa a halmazban (pl. integer String stb.), a setName pedig a változó neve.

NavigableSet objektumok létrehozása

Közvetlenül nem tudunk NavigableSet-et létrehozni, mivel ez egy interfész. Ehelyett egy hasonló osztályt használunk TreeSet hogy megvalósítja azt. A generikák segítségével meghatározhatjuk, hogy a halmaz milyen objektumokat fog tárolni. Ez a típusbiztos készlet a következőképpen definiálható:

NavigableSet set = new TreeSet ();

Példa: Ez a példa bemutatja, hogyan használhatja a NavigableSet különféle módszereit, mint például a descedingSet() tailSet() low() pollFirst() és pollLast() a rendezett halmaz normál és fordított sorrendben történő manipulálására és navigálására.

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

Kimenet:

Kimenet

Különféle műveletek végrehajtása a NavigableSet-en

1. Elemek hozzáadása: Használhatjuk a add() módszer elemek beszúrására a NavigableSetbe. Az elemek rendezési sorrendben vannak tárolva, nem engedélyezettek az ismétlődések, és a null értékeket sem fogadja el a NavigableSet.

Példa: Ez a példa bemutatja elemek hozzáadását a NavigableSethez az add() használatával, ahol a duplikátumokat a rendszer figyelmen kívül hagyja, és az elemeket növekvő sorrendbe rendezi.

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

Kimenet
NavigableSet: [A B C]  


2. Elemek elérése: Az elemek hozzáadása után, ha hozzá akarunk férni az elemekhez, használhatunk beépített módszereket, mint pl tartalmazza () első() utolsó() stb.

Példa: Ez a példa bemutatja elemek hozzáadását a NavigableSet elemhez, amely ellenőrzi egy elem létezését, és lekéri az első és az utolsó elemet.

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

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


3. Elemek eltávolítása: Az értékek a NavigableSet segítségével távolíthatók el eltávolítás() pollFirst() pollLast() .

Példa: Ez a példa bemutatja az elemek eltávolítását a NavigableSetből.

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

Kimenet
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. Iteráló elemek: Számos módja van a NavigableSet-en keresztüli iterációnak. A leghíresebb az, hogy a  továbbfejlesztett ciklushoz.

Példa: Ez a példa bemutatja elemek hozzáadását a NavigableSet-hez, és növekvő sorrendben történő iterációját.

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

Kimenet
A B C D E Z  

Mód

Az alábbiakban a NavigableSet felületen található módszerek láthatók. 

Mód

Leírás

 mennyezet (E e) A halmaz azon legkisebb elemét adja vissza, amely nagyobb vagy egyenlő az adott elemmel, vagy nullát, ha nincs ilyen elem.
descendingIterator() Egy iterátort ad vissza a halmaz elemei felett, csökkenő sorrendben.
descendingSet() A készletben található elemek fordított sorrendű nézetét adja vissza.
emelet (E e) Visszaadja a halmaz legnagyobb elemét, amely kisebb vagy egyenlő, mint az adott elem, vagy nullát, ha nincs ilyen elem.
fejhallgató (E-elemhez) A halmaz azon részének nézetét adja vissza, amelynek elemei szigorúan kisebbek, mint a toElement.
headSet (E toElement logikai értékkel együtt) A halmaz azon részének nézetét adja vissza, amelynek elemei kisebbek (vagy egyenlőek, ha igaz), mint az Element.
magasabb (E e) Visszaadja a halmaz legkisebb elemét, amely szigorúan nagyobb, mint az adott elem, vagy nullát, ha nincs ilyen elem.
iterátor() Egy iterátort ad vissza a halmaz elemei felett növekvő sorrendben.
alacsonyabb (E e) Visszaadja a halmaz legnagyobb elemét, amely szigorúan kisebb, mint az adott elem, vagy nullát, ha nincs ilyen elem.
pollFirst() Lekéri és eltávolítja az első (legalacsonyabb) elemet, vagy nullát ad vissza, ha ez a halmaz üres.
pollLast() Lekéri és eltávolítja az utolsó (legmagasabb) elemet, vagy nullát ad vissza, ha ez a halmaz üres.

subSet(E from Element logikai érték

az Inclusive E-től az Elem logikai értékig inkluzívig)

A halmaz azon részének nézetét adja vissza, amelynek elemei az Elemtől az Elemig terjednek.
részhalmaz (E az E elemtől az elemig) A halmaz azon részének nézetét adja vissza, amelynek elemei az Elemet magában foglalótól az Elemet kizárólagosig terjednek.
farokkészlet (E az elemből) A halmaz azon részének nézetét adja vissza, amelynek elemei nagyobbak vagy egyenlőek, mint fromElement.
tailSet (E az Element logikai értékéből, beleértve) A halmaz azon részének nézetét adja vissza, amelynek elemei nagyobbak (vagy egyenlőek, ha az inkluzív érték igaz) az Elemből.

                                                                                                                                              
A java.util.SortedSet interfésztől örökölt módszerek

Módszer

Leírás

összehasonlító()  Ez a metódus visszaadja a halmaz elemeinek rendezéséhez használt összehasonlítót, vagy nullát, ha ez a halmaz elemeinek természetes sorrendjét használja.
első() Ez a metódus a halmaz első (legalacsonyabb) elemét adja vissza.
utolsó() Ez a metódus a halmaz utolsó (legmagasabb) elemét adja vissza.
osztó() Elválasztót hoz létre a rendezett halmaz elemei felett.

A java.util.Set felületről örökölt módszerek

Módszer

Leírás

add(elem) Ez a módszer egy adott elem hozzáadására szolgál a készlethez. A függvény csak akkor adja hozzá az elemet, ha a megadott elem még nem szerepel a halmazban, különben a függvény False értéket ad vissza, ha az elem már jelen van a halmazban.
addAll (gyűjtemény)  Ezzel a módszerrel az említett gyűjtemény összes elemét hozzáfűzi a meglévő halmazhoz. Az elemek véletlenszerűen, meghatározott sorrend betartása nélkül kerülnek hozzáadásra.
világos()   Ez a módszer az összes elem eltávolítására szolgál a készletből, de nem törli a készletet. A készlet hivatkozása továbbra is létezik.
(elemet) tartalmaz Ezzel a módszerrel ellenőrizhető, hogy egy adott elem jelen van-e a készletben vagy sem.
Mindent tartalmaz (gyűjtemény) 

Ezzel a módszerrel ellenőrizhető, hogy a halmaz tartalmazza-e az adott gyűjteményben található összes elemet vagy sem.

Ez a metódus igazat ad vissza, ha a halmaz minden elemet tartalmaz, és hamis értéket ad vissza, ha valamelyik elem hiányzik.

egyenlő () Összehasonlítja a megadott objektumot ezzel a halmazzal az egyenlőség érdekében.
hashCode()  Ezzel a módszerrel kapjuk meg a HashCode értékét a készlet ezen példányához. Egy egész értéket ad vissza, amely a készlet ezen példányának hashCode értéke.
üres() Ezzel a módszerrel ellenőrizhető, hogy a NavigableSet üres-e vagy sem.
eltávolítás (elem) Ezzel a módszerrel távolítható el az adott elem a halmazból. Ez a metódus igaz értéket ad vissza, ha a megadott elem jelen van a készletben, ellenkező esetben False értéket ad vissza.
távolítsa el az összeset (gyűjtemény) Ezzel a módszerrel eltávolítható a készletben található összes elem a gyűjteményből. Ez a metódus igazat ad vissza, ha ez a halmaz megváltozott a hívás hatására.
mindent megtart (gyűjtemény) Ezzel a módszerrel megőrizzük a halmaz összes elemét, amely az adott gyűjteményben szerepel. Ez a metódus igazat ad vissza, ha ez a halmaz megváltozott a hívás hatására.
méret() Ezzel a módszerrel határozzuk meg a készlet méretét. Ez egy egész értéket ad vissza, amely az elemek számát jelzi.
toArray() Ezzel a módszerrel a halmazéval megegyező elemekből tömböt képeznek.
 toArray(T[] a) Egy tömböt ad vissza, amely a halmaz összes elemét tartalmazza; a visszaadott tömb futásidejű típusa a megadott tömbé.

A java.util.Collection felületen deklarált módszerek

Módszer Leírás
parallelStream() Egy valószínűleg párhuzamos adatfolyamot ad vissza, ennek a gyűjteménynek a forrása.
removeIf(Predikátum szűrő) Eltávolítja a gyűjtemény minden olyan elemét, amely megfelel az adott predikátumnak.
folyam() Egy szekvenciális adatfolyamot ad vissza, amelynek forrása ez a gyűjtemény.
toArray?(IntFunction generátor) Egy tömböt ad vissza, amely a gyűjtemény összes elemét tartalmazza a megadott generátor függvény segítségével a visszaadott tömb lefoglalásához.

A java.lang.Iterable felületen deklarált módszerek

Módszer Leírás
forEach(Fogyasztó akció) Végrehajtja az adott műveletet az iterable minden elemére, amíg az összes elemet fel nem dolgozták, vagy a művelet kivételt nem tesz.


Kvíz létrehozása