logo

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' title=

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ó:

NavigableSetsetName;

térkép gépírással

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ó:

NavigableSetset = 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' loading='lazy' title=

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.

knn algoritmus

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 eltávolíthatók a NavigableSet-ből a 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ódszerLeírás
parallelStream()Egy valószínűleg párhuzamos adatfolyamot ad vissza, ennek a gyűjteménynek a forrása.
removeIf(Predikátumszű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?(IntFunctiongenerá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ódszerLeí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.


mikor ér véget a q1