logo

NavigableSet v jazyku Java

V jazyku Java NavigableSet je podtypom SortedSet rozhranie. Umožňuje nám vykonávať rôzne operácie, ako je získanie najbližších zhôd pre daný prvok zostupnej iterácie a ďalšie. Poskytuje metódy na navigáciu medzi prvkami v množine.

Napríklad Rozhranie NavigableSet nám umožňuje prechádzať sadou vo vzostupnom aj zostupnom poradí na rozdiel od SortedSet, ktorý podporuje iba vzostupné poradie. Triedy, ktoré implementujú rozhranie NavigableSet, sú TreeSet  a  ConcurrentSkipListSet

  • NavigableSet rozširuje SortedSet a tým poskytuje metódy ako first() last() headSet() tailSet() atď.
  • Umožňuje vám navigáciu v oboch smeroch vzostupne aj zostupne
  • Najbežnejšou implementáciou NavigableSet je TreeSet.

Príklad: Tento príklad ukazuje vytvorenie NavigableSet pomocou TreeSet a pridanie prvkov do nej, ktoré ich automaticky zoradí vo vzostupnom poradí.



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

Výstup
Navigable Set: [10 20 30 40 50] 


Nižšie uvedený diagram ukazuje štruktúru dedičnosti v rámci kolekcie Java týkajúcej sa množín.

Navigovateľná sada-v-Java-s-príkladmi' title=

TreeSet je trieda, ktorá implementuje NavigableSet ktorý zase rozširuje SortedSet ktorý rozširuje Set .

Vyhlásenie NavigableSet

V jazyku Java môže byť deklarácia NavigableSet deklarovaná ako:

NavigableSetsetName;

Poznámka: ' Type' je typ prvku v množine (napr. celé číslo String atď.) a setName je názov premennej.

Vytváranie objektov NavigableSet

Nemôžeme vytvoriť NavigableSet priamo, pretože je to rozhranie. Namiesto toho používame triedu ako TreeSet ktorá to implementuje. Pomocou generík môžeme definovať typ objektov, ktoré bude množina uchovávať. Túto typovo bezpečnú súpravu možno definovať ako:

NavigableSetset = nový TreeSet();

Príklad: Tento príklad ukazuje, ako používať rôzne metódy NavigableSet, ako napríklad descendingSet() tailSet() lower() pollFirst() a pollLast() na manipuláciu a navigáciu v triedenej množine v normálnom aj opačnom poradí.

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

výstup:

Výstup' loading='lazy' title=

Vykonávanie rôznych operácií na NavigableSet

1. Pridanie prvkov: Môžeme použiť pridať () metóda na vloženie prvkov do NavigableSet. Prvky sú uložené v zoradenom poradí, nie sú povolené žiadne duplikáty a NavigableSet tiež neakceptuje hodnoty null.

Príklad: Tento príklad ukazuje pridávanie prvkov do NavigableSet pomocou add(), kde sa duplikáty ignorujú a prvky sú zoradené vo vzostupnom poradí.

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

Výstup
NavigableSet: [A B C] 


2. Prístup k prvkom: Po pridaní prvkov, ak chceme získať prístup k prvkom, môžeme použiť vstavané metódy ako obsahuje() prvý() posledný() atď.

Príklad: Tento príklad demonštruje pridávanie prvkov do NavigableSet pri kontrole existencie prvku a načítavaní prvého a posledného prvku.

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

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


3. Odstránenie prvkov: Hodnoty môžu byť odstránené z NavigableSet pomocou odstrániť () pollFirst() pollLast() .

css komentár

Príklad: Tento príklad ukazuje odstránenie prvkov z 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);  } } 

Výstup
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. Iterujúce prvky: Existujú rôzne spôsoby iterácie cez NavigableSet. Najznámejším z nich je použitie  vylepšená slučka for.

Príklad: Tento príklad ukazuje pridávanie prvkov do NavigableSet a ich iteráciu vo vzostupnom poradí.

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

Výstup
A B C D E Z 

Metódy

Nasledujú metódy prítomné v rozhraní NavigableSet. 

Metódy

Popis

 strop (E e) Vráti najmenší prvok v tejto množine väčší alebo rovný danému prvku alebo hodnotu null, ak takýto prvok neexistuje.
descendingIterator() Vráti iterátor nad prvkami v tejto množine v zostupnom poradí.
descendingSet() Vráti zobrazenie v opačnom poradí prvkov obsiahnutých v tejto množine.
poschodie (E e) Vráti najväčší prvok v tejto množine menší alebo rovný danému prvku alebo null, ak taký prvok neexistuje.
headset (E toElement) Vráti pohľad na časť tejto množiny, ktorej prvky sú striktne menšie ako toElement.
headset (vrátane booleovských hodnôt E toElement) Vráti zobrazenie časti tejto množiny, ktorej prvky sú menšie ako (alebo sa rovnajú, ak je zahrnutie pravdivé) toElement.
vyššie (E e) Vráti najmenší prvok v tejto množine striktne väčší ako daný prvok alebo hodnotu null, ak takýto prvok neexistuje.
iterátor() Vráti iterátor nad prvkami v tejto množine vo vzostupnom poradí.
nižšie (E e) Vráti najväčší prvok v tejto množine striktne menší ako daný prvok alebo hodnotu null, ak taký prvok neexistuje.
pollFirst() Načíta a odstráni prvý (najnižší) prvok alebo vráti hodnotu null, ak je táto množina prázdna.
pollLast() Načíta a odstráni posledný (najvyšší) prvok alebo vráti hodnotu null, ak je táto množina prázdna.

subSet(E fromElement boolean

fromInclusive E toElement boolean toInclusive)

Vráti pohľad na časť tejto množiny, ktorej prvky sa pohybujú od fromElement po toElement.
podmnožina (E fromElement E toElement) Vráti zobrazenie časti tejto množiny, ktorej prvky siahajú od fromElement vrátane po toElement exclusive.
tailSet(E fromElement)Vráti pohľad na časť tejto množiny, ktorej prvky sú väčšie alebo rovné ako fromElement.
tailSet (E fromElement boolean vrátane)Vráti zobrazenie časti tejto množiny, ktorej prvky sú väčšie ako (alebo sa rovnajú, ak je zahrnutie pravdivé) fromElement.

                                                                                                                                              
Metódy zdedené z rozhrania java.util.SortedSet

Metóda

Popis

porovnávač()  Táto metóda vráti komparátor použitý na zoradenie prvkov v tejto množine alebo hodnotu null, ak táto množina používa prirodzené usporiadanie svojich prvkov.
prvý() Táto metóda vráti prvý (najnižší) prvok prítomný v tejto množine.
posledný() Táto metóda vráti posledný (najvyšší) prvok prítomný v množine.
rozdeľovač()Vytvorí rozdeľovač nad prvkami v tejto zoradenej množine.

Metódy zdedené z rozhrania java.util.Set

Metóda

Popis

pridať (prvok) Táto metóda sa používa na pridanie konkrétneho prvku do sady. Funkcia pridá prvok iba vtedy, ak sa špecifikovaný prvok ešte nenachádza v množine, inak funkcia vráti hodnotu False, ak sa prvok už v množine nachádza.
addAll(kolekcia)  Táto metóda sa používa na pripojenie všetkých prvkov z uvedenej kolekcie k existujúcej množine. Prvky sa pridávajú náhodne bez toho, aby sa dodržali konkrétne poradie.
jasné()   Táto metóda sa používa na odstránenie všetkých prvkov zo sady, ale nie na odstránenie sady. Odkaz na súpravu stále existuje.
obsahuje (prvok) Táto metóda sa používa na kontrolu, či je konkrétny prvok prítomný v množine alebo nie.
obsahuje všetko (kolekcia) 

Táto metóda sa používa na kontrolu, či sada obsahuje všetky prvky prítomné v danej kolekcii alebo nie.

Táto metóda vráti hodnotu true, ak množina obsahuje všetky prvky, a vráti hodnotu false, ak niektorý z prvkov chýba.

rovná sa() Porovná zadaný objekt s touto množinou z hľadiska rovnosti.
hashCode()  Táto metóda sa používa na získanie hodnoty hashCode pre túto inštanciu sady. Vráti celočíselnú hodnotu, ktorá je hodnotou hashCode pre túto inštanciu sady.
isEmpty() Táto metóda sa používa na kontrolu, či je NavigableSet prázdny alebo nie.
odstrániť (prvok) Táto metóda sa používa na odstránenie daného prvku zo sady. Táto metóda vráti hodnotu True, ak je zadaný prvok prítomný v množine, inak vráti hodnotu False.
odstrániť všetko (kolekcia) Táto metóda sa používa na odstránenie všetkých prvkov z kolekcie, ktoré sa nachádzajú v množine. Táto metóda vráti hodnotu true, ak sa táto množina zmenila v dôsledku volania.
ponechať všetko (kolekcia) Táto metóda sa používa na zachovanie všetkých prvkov zo sady, ktoré sú uvedené v danej kolekcii. Táto metóda vráti hodnotu true, ak sa táto množina zmenila v dôsledku volania.
veľkosť () Táto metóda sa používa na získanie veľkosti súpravy. Toto vráti celočíselnú hodnotu, ktorá označuje počet prvkov.
toArray() Táto metóda sa používa na vytvorenie poľa rovnakých prvkov, aké má sada.
 toArray(T[] a)Vráti pole obsahujúce všetky prvky v tejto množine; typ runtime vráteného poľa je typ zadaného poľa.

Metódy deklarované v rozhraní java.util.Collection

MetódaPopis
parallelStream()Vráti možný paralelný stream s touto kolekciou ako zdrojom.
removeIf(Predikátfilter)Odstráni všetky prvky tejto kolekcie, ktoré spĺňajú daný predikát.
stream()Vráti sekvenčný stream s touto kolekciou ako zdrojom.
toArray? (IntFunctiongenerátor)Vráti pole obsahujúce všetky prvky v tejto kolekcii pomocou poskytnutej funkcie generátora na pridelenie vráteného poľa.

Metódy deklarované v rozhraní java.lang.Iterable

MetódaPopis
pre každého (spotrebiteľaakcia) Vykoná danú akciu pre každý prvok Iterable, kým nie sú spracované všetky prvky alebo kým akcia nevyvolá výnimku.