logo

NavigableSet w Javie

W Javie Zestaw żeglowny jest podtypem Posortowany zestaw interfejs. Pozwala nam wykonywać różne operacje, takie jak uzyskiwanie najbliższych dopasowań dla danego elementu, iteracja w kolejności malejącej i inne. Zapewnia metody poruszania się po elementach zestawu.

Na przykład Interfejs NavigableSet pozwala nam poruszać się po zestawie zarówno w kolejności rosnącej, jak i malejącej, w przeciwieństwie do SortedSet, który obsługuje tylko kolejność rosnącą. Klasy implementujące interfejs NavigableSet to Zestaw drzew  I  Zestaw współbieżnych list pominięć

  • NavigableSet rozszerza SortedSet i udostępnia w ten sposób metody takie jak First() last() headSet() tailSet() itp.
  • Umożliwia nawigację w obu kierunkach, w kolejności rosnącej i malejącej
  • Najpopularniejszą implementacją NavigableSet jest TreeSet.

Przykład: Ten przykład ilustruje tworzenie zestawu NavigableSet przy użyciu TreeSet i dodanie do niego elementów, które automatycznie sortują je w kolejności rosnącej.



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

Wyjście
Navigable Set: [10 20 30 40 50] 


Poniższy diagram przedstawia strukturę dziedziczenia w środowisku kolekcji Java związaną z zestawami.

Zestaw nawigacyjny w Javie z przykładami' title=

TreeSet to klasa, która implementuje Zestaw żeglowny co z kolei rozszerza SortedSet, który się rozszerza Ustawić .

Deklaracja NavigableSet

W Javie deklarację NavigableSet można zadeklarować jako:

Zestaw żeglownynazwa zestawu;

Notatka: ' Type' to typ elementu w zestawie (np. liczba całkowita String itp.), a setName to nazwa zmiennej.

Tworzenie obiektów NavigableSet

Nie możemy bezpośrednio utworzyć zestawu NavigableSet, ponieważ jest to interfejs. Zamiast tego używamy klasy takiej jak Zestaw drzew który to realizuje. Za pomocą typów ogólnych możemy zdefiniować typ obiektów, które zestaw będzie przechowywać. Ten zestaw bezpieczny dla typu można zdefiniować jako:

Zestaw żeglownyzestaw = nowy Zestaw Drzewa();

Przykład: W tym przykładzie pokazano, jak używać różnych metod NavigableSet, takich jak descedingSet() tailSet() less() pollFirst() i pollLast() do manipulowania i nawigacji po posortowanym zestawie w normalnej i odwrotnej kolejności.

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

Wyjście:

Wyjście' loading='lazy' title=

Wykonywanie różnych operacji na NavigableSet

1. Dodawanie elementów: Możemy skorzystać z dodać() metoda wstawiania elementów do zestawu NavigableSet. Elementy są przechowywane w kolejności posortowanej, duplikaty nie są dozwolone, a wartości null również nie są akceptowane przez zestaw NavigableSet.

Przykład: Ten przykład ilustruje dodawanie elementów do NavigableSet za pomocą metody add(), gdzie duplikaty są ignorowane, a elementy są sortowane w kolejności rosnącej.

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

Wyjście
NavigableSet: [A B C] 


2. Dostęp do elementów: Po dodaniu elementów, jeśli chcemy uzyskać do nich dostęp, możemy skorzystać z wbudowanych metod, takich jak zawiera() Pierwszy() ostatni() itp.

Przykład: Ten przykład ilustruje dodawanie elementów do NavigableSet, sprawdzanie istnienia elementu i pobieranie pierwszego i ostatniego elementu.

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

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


3. Usuwanie elementów: Wartości można usunąć z zestawu NavigableSet za pomocą metody usunąć() pierwsza ankieta() ankietaOstatnia() .

Przykład: Ten przykład ilustruje usuwanie elementów z zestawu 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);  } } 

Wyjście
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. Elementy iteracyjne: Istnieją różne sposoby iteracji po zestawie NavigableSet. Najbardziej znanym jest użycie  udoskonalona pętla for.

Przykład: Ten przykład ilustruje dodawanie elementów do NavigableSet i iterację po nim w kolejności rosnącej.

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

Wyjście
A B C D E Z 

Metody

Poniżej przedstawiono metody dostępne w interfejsie NavigableSet. 

Metody

Opis

 sufit (E e) Zwraca najmniejszy element w tym zestawie, większy lub równy podanemu elementowi lub null, jeśli taki element nie istnieje.
malejącyIterator() Zwraca iterator po elementach w tym zestawie w kolejności malejącej.
malejącoSet() Zwraca widok w odwrotnej kolejności elementów zawartych w tym zestawie.
piętro(E e) Zwraca największy element w tym zestawie, mniejszy lub równy podanemu elementowi lub null, jeśli taki element nie istnieje.
headSet(E doElement) Zwraca widok części tego zestawu, którego elementy są ściśle mniejsze niż toElement.
headSet(E toElement wartość logiczna włącznie) Zwraca widok części tego zestawu, którego elementy są mniejsze niż (lub równe, jeśli opcja inclusive ma wartość true) toElement.
wyższy (E e) Zwraca najmniejszy element w tym zestawie ściśle większy od podanego elementu lub null, jeśli taki element nie istnieje.
iterator() Zwraca iterator po elementach w tym zestawie w kolejności rosnącej.
niższy (E e) Zwraca największy element w tym zestawie, ściśle mniejszy od podanego elementu lub null, jeśli taki element nie istnieje.
pierwsza ankieta() Pobiera i usuwa pierwszy (najniższy) element lub zwraca wartość null, jeśli ten zestaw jest pusty.
ankietaOstatnia() Pobiera i usuwa ostatni (najwyższy) element lub zwraca wartość null, jeśli ten zestaw jest pusty.

subSet(E z elementu logicznego

fromInclusive E toElement boolean toInclusive)

Zwraca widok części tego zestawu, którego elementy mieszczą się w zakresie od fromElement do toElement.
podzbiór(E z elementu E do elementu) Zwraca widok części tego zestawu, którego elementy wahają się od fromElement włącznie do toElement Exclusive.
tailSet(E z elementu)Zwraca widok części tego zestawu, którego elementy są większe lub równe fromElement.
tailSet(E z elementu logicznego włącznie)Zwraca widok części tego zestawu, którego elementy są większe niż (lub równe, jeśli opcja inclusive ma wartość true) fromElement.

                                                                                                                                              
Metody Dziedziczone z interfejsu java.util.SortedSet

Metoda

Opis

komparator()  Ta metoda zwraca komparator używany do porządkowania elementów w tym zestawie lub wartość null, jeśli w tym zestawie zastosowano naturalną kolejność elementów.
Pierwszy() Ta metoda zwraca pierwszy (najniższy) element występujący w tym zestawie.
ostatni() Ta metoda zwraca ostatni (najwyższy) element występujący w zestawie.
rozdzielacz()Tworzy Spliterator na elementach w tym posortowanym zestawie.

Metody Dziedziczone z interfejsu java.util.Set

Metoda

Opis

dodać (element) Metoda ta służy do dodania konkretnego elementu do zbioru. Funkcja dodaje element tylko wtedy, gdy określony element nie znajduje się jeszcze w zestawie, w przeciwnym razie funkcja zwraca False, jeśli element jest już obecny w zestawie.
dodaj wszystko (kolekcja)  Metoda ta służy do dołączenia wszystkich elementów wspomnianej kolekcji do istniejącego zbioru. Elementy dodawane są losowo, bez zachowania określonej kolejności.
jasne()   Ta metoda służy do usunięcia wszystkich elementów ze zbioru, ale nie do usunięcia zbioru. Odniesienie do zestawu nadal istnieje.
zawiera (element) Metoda ta służy do sprawdzenia, czy dany element występuje w Zestawie, czy też nie.
zawieraWszystko(kolekcja) 

Metoda ta służy do sprawdzenia, czy zbiór zawiera wszystkie elementy występujące w danej kolekcji, czy też nie.

Ta metoda zwraca wartość true, jeśli zestaw zawiera wszystkie elementy, i zwraca wartość false, jeśli brakuje któregokolwiek z elementów.

równa się() Porównuje określony obiekt z tym zestawem pod kątem równości.
hashCode()  Ta metoda służy do uzyskania wartości hashCode dla tej instancji zestawu. Zwraca wartość całkowitą, która jest wartością hashCode dla tej instancji zestawu.
jestPusty() Ta metoda służy do sprawdzania, czy zestaw NavigableSet jest pusty, czy nie.
usuń (element) Metoda ta służy do usunięcia danego elementu ze zbioru. Ta metoda zwraca True, jeśli określony element jest obecny w zestawie, w przeciwnym razie zwraca False.
usuń wszystko (kolekcja) Metoda ta służy do usunięcia z kolekcji wszystkich elementów znajdujących się w zbiorze. Ta metoda zwraca wartość true, jeśli ten zestaw uległ zmianie w wyniku wywołania.
zachowaj wszystko (kolekcja) Metoda ta służy do zachowania wszystkich elementów ze zbioru, które są wymienione w danej kolekcji. Ta metoda zwraca wartość true, jeśli ten zestaw uległ zmianie w wyniku wywołania.
rozmiar() Ta metoda służy do uzyskania rozmiaru zestawu. Zwraca wartość całkowitą, która oznacza liczbę elementów.
do tablicy() Ta metoda służy do tworzenia tablicy zawierającej te same elementy, co tablica Set.
 doArray(T[]a)Zwraca tablicę zawierającą wszystkie elementy tego zestawu; typem środowiska wykonawczego zwróconej tablicy jest typ określonej tablicy.

Metody zadeklarowane w interfejsie java.util.Collection

MetodaOpis
strumień równoległy()Zwraca prawdopodobnie równoległy Stream z tą kolekcją jako źródłem.
usuńIf(Predykatfiltr)Usuwa wszystkie elementy tej kolekcji, które spełniają podany predykat.
strumień()Zwraca sekwencyjny Stream z tą kolekcją jako źródłem.
do tablicy? (IntFunctiongenerator)Zwraca tablicę zawierającą wszystkie elementy w tej kolekcji przy użyciu dostarczonej funkcji generatora w celu alokacji zwróconej tablicy.

Metody zadeklarowane w interfejsie java.lang.Iterable

MetodaOpis
dla każdego (konsumentdziałanie) Wykonuje daną akcję dla każdego elementu Iterable, dopóki wszystkie elementy nie zostaną przetworzone lub akcja nie zgłosi wyjątku.