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.
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:
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 super E>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 | 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ó super T>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. |