logo

NavigableSet v Javě

V Javě NavigableSet je podtypem SortedSet rozhraní. Umožňuje nám provádět různé operace, jako je získání nejbližších shod pro iteraci daného prvku sestupně a další. Poskytuje metody pro procházení prvků v sadě.

Například Rozhraní NavigableSet nám umožňuje procházet sadou ve vzestupném i sestupném pořadí na rozdíl od SortedSet, který podporuje pouze vzestupné pořadí. Třídy, které implementují rozhraní NavigableSet, jsou TreeSet  a  ConcurrentSkipListSet

  • NavigableSet rozšiřuje SortedSet a poskytuje tak metody jako first() last() headSet() tailSet() atd.
  • Umožňuje navigaci v obou směrech vzestupně i sestupně
  • Nejběžnější implementací NavigableSet je TreeSet.

Příklad: Tento příklad ukazuje vytvoření NavigableSet pomocí TreeSet a přidání prvků do ní, které je automaticky seřadí ve vzestupném pořadí.



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] 


xor c++

Níže uvedený diagram ukazuje strukturu dědičnosti v rámci kolekce Java týkající se sad.

Navigovatelná sada-v-Java-s-příklady' title=

TreeSet je třída, která implementuje NavigableSet což zase rozšiřuje SortedSet který rozšiřuje Soubor .

Deklarace NavigableSet

V Javě lze deklaraci NavigableSet deklarovat jako:

NavigableSetsetName;

Poznámka: ' Type' je typ prvku v sadě (např. celé číslo String atd.) a setName je název proměnné.

Vytváření objektů NavigableSet

Nemůžeme vytvořit NavigableSet přímo, protože se jedná o rozhraní. Místo toho používáme třídu jako TreeSet která to implementuje. Pomocí generik můžeme definovat typ objektů, které bude sada ukládat. Tuto typově bezpečnou sadu lze definovat jako:

NavigableSetset = nový TreeSet();

Příklad: Tento příklad ukazuje, jak používat různé metody NavigableSet, jako je DesdingSet() tailSet() lower() pollFirst() a pollLast() k manipulaci a procházení setříděné sady v normálním i opačném pořadí.

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=

Provádění různých operací na NavigableSet

1. Přidání prvků: Můžeme použít přidat() metoda pro vložení prvků do NavigableSet. Prvky jsou uloženy v seřazeném pořadí, žádné duplikáty nejsou povoleny a NavigableSet také nepřijímá hodnoty null.

Příklad: Tento příklad ukazuje přidávání prvků do NavigableSet pomocí add(), kde jsou duplikáty ignorovány a prvky jsou seřazeny ve vzestupném pořadí.

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. Přístup k prvkům: Po přidání prvků, pokud chceme k prvkům přistupovat, můžeme použít vestavěné metody jako obsahuje() první() poslední() atd.

Příklad: Tento příklad ukazuje přidávání prvků do NavigableSet, kontrolu existence prvku a načítání prvního a posledního prvku.

integer double java
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. Odebrání prvků: Hodnoty lze odstranit z NavigableSet pomocí odstranit() pollFirst() pollLast() .

Příklad: Tento příklad ukazuje odebrání prvků z NavigableSet.

ipconfig pro linux zdarma
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. Iterační prvky: Existují různé způsoby, jak iterovat přes NavigableSet. Nejznámější z nich je použití  vylepšená smyčka for.

Příklad: Tento příklad ukazuje přidávání prvků do NavigableSet a jejich iterování ve vzestupném pořadí.

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 

Metody

Níže jsou uvedeny metody přítomné v rozhraní NavigableSet. 

Metody

Popis

 strop (E e) Vrátí nejmenší prvek v této sadě, který je větší nebo roven danému prvku nebo null, pokud takový prvek neexistuje.
descendingIterator() Vrátí iterátor nad prvky v této sadě v sestupném pořadí.
descendingSet() Vrátí pohled v opačném pořadí na prvky obsažené v této sadě.
patro (E e) Vrátí největší prvek v této sadě menší nebo rovný danému prvku nebo null, pokud takový prvek neexistuje.
headset (E toElement) Vrátí pohled na část této sady, jejíž prvky jsou striktně menší než toElement.
headset (včetně booleovských logických prvků E toElement) Vrátí pohled na část této sady, jejíž prvky jsou menší než (nebo se rovnají, je-li zahrnuto pravdivé) toElement.
vyšší (E e) Vrátí nejmenší prvek v této sadě přísně větší než daný prvek nebo hodnotu null, pokud takový prvek neexistuje.
iterátor() Vrátí iterátor nad prvky v této sadě ve vzestupném pořadí.
nižší (E e) Vrátí největší prvek v této sadě přísně menší než daný prvek nebo hodnotu null, pokud takový prvek neexistuje.
pollFirst() Načte a odstraní první (nejnižší) prvek nebo vrátí hodnotu null, pokud je tato sada prázdná.
pollLast() Načte a odstraní poslední (nejvyšší) prvek nebo vrátí hodnotu null, pokud je tato sada prázdná.

subSet(E fromElement boolean

fromInclusive E toElement boolean toInclusive)

Vrátí pohled na část této sady, jejíž prvky se pohybují od fromElement do toElement.
podmnožina (E fromElement E toElement) Vrátí pohled na část této sady, jejíž prvky se pohybují od fromElement včetně do toElement exclusive.
tailSet(E fromElement)Vrátí pohled na část této sady, jejíž prvky jsou větší nebo rovné fromElement.
tailSet (E fromElement boolean včetně)Vrátí pohled na část této množiny, jejíž prvky jsou větší než (nebo se rovnají, pokud je zahrnuto pravdivé) fromElement.

                                                                                                                                              
Metody zděděné z rozhraní java.util.SortedSet

Metoda

Popis

srovnávač()  Tato metoda vrátí komparátor použitý k řazení prvků v této sadě nebo hodnotu null, pokud tato sada používá přirozené uspořádání svých prvků.
první() Tato metoda vrací první (nejnižší) prvek přítomný v této sadě.
poslední() Tato metoda vrací poslední (nejvyšší) prvek přítomný v sadě.
rozdělovač()Vytvoří Spliterator nad prvky v této tříděné sadě.

Metody zděděné z rozhraní java.util.Set

Metoda

vlk versus liška

Popis

přidat (prvek) Tato metoda se používá k přidání konkrétního prvku do sady. Funkce přidá prvek pouze v případě, že zadaný prvek již není v sadě přítomen, jinak funkce vrátí hodnotu False, pokud je prvek již v sadě přítomen.
addAll(kolekce)  Tato metoda se používá k připojení všech prvků ze zmíněné kolekce k existující sadě. Prvky se přidávají náhodně, aniž by se řídily konkrétním pořadím.
jasný()   Tato metoda se používá k odstranění všech prvků ze sady, ale nikoli k odstranění sady. Odkaz na sadu stále existuje.
obsahuje (prvek) Tato metoda se používá ke kontrole, zda je určitý prvek přítomen v sadě nebo ne.
obsahuje vše (kolekce) 

Tato metoda se používá ke kontrole, zda sada obsahuje všechny prvky přítomné v dané kolekci nebo ne.

Tato metoda vrátí hodnotu true, pokud sada obsahuje všechny prvky, a vrátí hodnotu false, pokud některý z prvků chybí.

rovná se() Porovná zadaný objekt s touto množinou pro rovnost.
hashCode()  Tato metoda se používá k získání hodnoty hashCode pro tuto instanci sady. Vrací celočíselnou hodnotu, což je hodnota hashCode pro tuto instanci sady.
isEmpty() Tato metoda se používá ke kontrole, zda je NavigableSet prázdný nebo ne.
odstranit (prvek) Tato metoda se používá k odstranění daného prvku ze sady. Tato metoda vrátí hodnotu True, pokud je zadaný prvek přítomen v sadě, jinak vrátí hodnotu False.
odstranit vše (kolekce) Tato metoda se používá k odstranění všech prvků z kolekce, které jsou přítomny v sadě. Tato metoda vrátí hodnotu true, pokud se tato sada v důsledku volání změnila.
zachovat vše (kolekce) Tato metoda slouží k zachování všech prvků ze sady, které jsou v dané kolekci uvedeny. Tato metoda vrátí hodnotu true, pokud se tato sada v důsledku volání změnila.
velikost() Tato metoda se používá k získání velikosti sady. To vrátí celočíselnou hodnotu, která označuje počet prvků.
toArray() Tato metoda se používá k vytvoření pole stejných prvků jako sada.
 toArray(T[] a)Vrátí pole obsahující všechny prvky v této sadě; typ runtime vráceného pole je typ zadaného pole.

Metody deklarované v rozhraní java.util.Collection

MetodaPopis
paralelní proud()Vrátí možná paralelní proud s touto sbírkou jako zdrojem.
removeIf(Predikátfiltr)Odebere všechny prvky této kolekce, které splňují daný predikát.
proud()Vrátí sekvenční stream s touto sbírkou jako jejím zdrojem.
toArray? (IntFunctiongenerátor)Vrátí pole obsahující všechny prvky v této kolekci pomocí poskytnuté funkce generátoru k přidělení vráceného pole.

Metody deklarované v rozhraní java.lang.Iterable

MetodaPopis
pro každého (spotřebiteleakce) Provede danou akci pro každý prvek Iterable, dokud nejsou zpracovány všechny prvky nebo akce nevyvolá výjimku.