logo

NavigableSet u Javi

U Javi je NavigableSet je podvrsta SortedSet sučelje. Omogućuje nam izvođenje raznih operacija kao što je pronalaženje najbližih podudaranja za dani element iteracija silaznog redoslijeda i druge. Omogućuje metode za navigaciju kroz elemente u skupu.

alisa manyonok

Na primjer Sučelje NavigableSet omogućuje nam kretanje kroz skup i uzlaznim i silaznim redoslijedom za razliku od SortedSeta koji podržava samo uzlazni redoslijed. Klase koje implementiraju sučelje NavigableSet su TreeSet  i  ConcurrentSkipListSet

  • NavigableSet proširuje SortedSet i stoga pruža metode kao što su first() last() headSet() tailSet() itd.
  • Omogućuje vam navigaciju u oba smjera uzlaznim i silaznim redoslijedom
  • Najčešća implementacija NavigableSeta je TreeSet.

Primjer: Ovaj primjer demonstrira stvaranje NavigableSeta pomoću TreeSeta i dodavanje elemenata u njega koji ih automatski razvrstava uzlaznim redoslijedom.



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

Izlaz
Navigable Set: [10 20 30 40 50] 


Donji dijagram prikazuje strukturu nasljeđivanja u Javinom okviru zbirke koji se odnosi na skupove.

NavigableSet-in-Java-with-Examples' title=

TreeSet je klasa koja implementira NavigableSet koji se pak proteže SortedSet koji se proteže set .

Deklaracija NavigableSeta

U Javi se deklaracija NavigableSeta može deklarirati kao:

NavigableSetsetName;

Napomena: ' Tip' je tip elementa u skupu (npr. cjelobrojni niz itd.), a setName je naziv varijable.

Stvaranje NavigableSet objekata

Ne možemo kreirati NavigableSet izravno jer je to sučelje. Umjesto toga koristimo klasu poput TreeSet koji ga provodi. Uz pomoć generika možemo definirati vrstu objekata koje će skup pohranjivati. Ovaj tipski siguran skup može se definirati kao:

NavigableSetset = novi TreeSet();

Primjer: Ovaj primjer pokazuje kako koristiti različite metode NavigableSeta kao što su descedingSet() tailSet() lower() pollFirst() i pollLast() za manipuliranje sortiranim skupom i kretanje po njemu normalnim i obrnutim redoslijedom.

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

Izlaz:

Izlaz' loading='lazy' title=

Izvođenje raznih operacija na NavigableSet-u

1. Dodavanje elemenata: Možemo koristiti dodati() metoda za umetanje elemenata u NavigableSet. Elementi su pohranjeni sortiranim redoslijedom, duplikati nisu dopušteni, a NavigableSet također ne prihvaća nulte vrijednosti.

pokrivenost izjave

Primjer: Ovaj primjer demonstrira dodavanje elemenata u NavigableSet pomoću add() gdje se duplikati zanemaruju, a elementi se poredaju uzlaznim redoslijedom.

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

Izlaz
NavigableSet: [A B C] 


2. Pristup elementima: Nakon dodavanja elemenata, ako želimo pristupiti elementima, možemo koristiti ugrađene metode poput sadrži () prvi() trajati() itd.

Primjer: Ovaj primjer pokazuje dodavanje elemenata u NavigableSet provjeravajući postojanje elementa i dohvaćanje prvog i zadnjeg elementa.

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

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


stvaranje niza nizova u Javi

3. Uklanjanje elemenata: Vrijednosti se mogu ukloniti iz NavigableSeta pomoću ukloniti() pollFirst() pollLast() .

Primjer: Ovaj primjer pokazuje uklanjanje elemenata iz NavigableSeta.

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

Izlaz
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] 


java varijabla varijabla

4. Ponavljajući elementi: Postoje različiti načini za ponavljanje kroz NavigableSet. Najpoznatiji je korištenje  poboljšana for petlja.

Primjer: Ovaj primjer pokazuje dodavanje elemenata u NavigableSet i ponavljanje kroz njega uzlaznim redoslijedom.

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

Izlaz
A B C D E Z 

Metode

Sljedeće su metode prisutne u sučelju NavigableSet. 

Metode

Opis

 strop (E e) Vraća najmanji element u ovom skupu veći ili jednak danom elementu ili null ako ne postoji takav element.
silazniIterator() Vraća iterator preko elemenata u ovom skupu silaznim redoslijedom.
silazniSet() Vraća prikaz obrnutim redoslijedom elemenata sadržanih u ovom skupu.
kat (E e) Vraća najveći element u ovom skupu manji ili jednak danom elementu ili null ako takav element ne postoji.
slušalice (E to Element) Vraća prikaz dijela ovog skupa čiji su elementi striktno manji od toElement.
HeadSet (E toElement boolean inclusive) Vraća prikaz dijela ovog skupa čiji su elementi manji od (ili jednaki ako je uključivo istinito) toElement.
viši (E e) Vraća najmanji element u ovom skupu striktno veći od danog elementa ili null ako takav element ne postoji.
iterator() Vraća iterator preko elemenata u ovom skupu uzlaznim redoslijedom.
niži (E e) Vraća najveći element u ovom skupu striktno manji od danog elementa ili null ako takav element ne postoji.
pollFirst() Dohvaća i uklanja prvi (najniži) element ili vraća null ako je ovaj skup prazan.
pollLast() Dohvaća i uklanja zadnji (najviši) element ili vraća null ako je ovaj skup prazan.

podSkup(E fromElement boolean

from Inclusive E toElement boolean to Inclusive)

Vraća prikaz dijela ovog skupa čiji se elementi kreću od fromElement do toElement.
podskup(E odElement E doElement) Vraća prikaz dijela ovog skupa čiji se elementi kreću od fromElement inclusive do toElement exclusive.
tailSet(E fromElement)Vraća prikaz dijela ovog skupa čiji su elementi veći ili jednaki fromElement.
tailSet(E fromElement boolean inclusive)Vraća prikaz dijela ovog skupa čiji su elementi veći od (ili jednaki ako je uključivo istinito) fromElement.

                                                                                                                                              
Metode naslijeđene od sučelja java.util.SortedSet

metoda

filtrirajući python

Opis

usporednik()  Ova metoda vraća komparator korišten za poredak elemenata u ovom skupu ili null ako ovaj skup koristi prirodni poredak svojih elemenata.
prvi() Ova metoda vraća prvi (najniži) element prisutan u ovom skupu.
trajati() Ova metoda vraća posljednji (najviši) element prisutan u skupu.
razdjelnik()Stvara Spliterator preko elemenata u ovom sortiranom skupu.

Metode naslijeđene od sučelja java.util.Set

metoda

Opis

dodati (element) Ova metoda se koristi za dodavanje određenog elementa u skup. Funkcija dodaje element samo ako navedeni element već nije prisutan u skupu, inače funkcija vraća False ako je element već prisutan u skupu.
dodajSve(zbirka)  Ova metoda se koristi za dodavanje svih elemenata iz spomenute kolekcije u postojeći skup. Elementi se dodaju nasumično bez pridržavanja određenog redoslijeda.
jasan()   Ova se metoda koristi za uklanjanje svih elemenata iz skupa, ali ne i za brisanje skupa. Referenca za skup i dalje postoji.
sadrži (element) Ova metoda se koristi za provjeru je li određeni element prisutan u skupu ili ne.
sadržiSve(zbirka) 

Ova metoda se koristi za provjeru sadrži li skup sve elemente prisutne u danoj kolekciji ili ne.

Ova metoda vraća true ako skup sadrži sve elemente i vraća false ako neki od elemenata nedostaje.

jednako() Uspoređuje navedeni objekt s ovim skupom radi jednakosti.
hashCode()  Ova se metoda koristi za dobivanje vrijednosti hashCode za ovu instancu skupa. Vraća vrijednost cijelog broja koja je vrijednost hashCode za ovu instancu skupa.
isEmpty() Ova se metoda koristi za provjeru je li NavigableSet prazan ili ne.
ukloniti (element) Ova metoda se koristi za uklanjanje zadanog elementa iz skupa. Ova metoda vraća True ako je navedeni element prisutan u Setu, inače vraća False.
ukloniSve(zbirka) Ova se metoda koristi za uklanjanje svih elemenata iz zbirke koji su prisutni u skupu. Ova metoda vraća true ako se ovaj skup promijenio kao rezultat poziva.
zadržatiSve(zbirka) Ova metoda se koristi za zadržavanje svih elemenata iz skupa koji se spominju u datoj zbirci. Ova metoda vraća true ako se ovaj skup promijenio kao rezultat poziva.
veličina() Ova metoda se koristi za dobivanje veličine skupa. Ovo vraća cjelobrojnu vrijednost koja označava broj elemenata.
toArray() Ova se metoda koristi za formiranje niza istih elemenata kao i skup.
 toArray(T[] a)Vraća niz koji sadrži sve elemente u ovom skupu; tip vremena izvođenja vraćenog niza je onaj navedenog niza.

Metode deklarirane u sučelju java.util.Collection

metodaOpis
paralelni tok()Vraća mogući paralelni tok s ovom zbirkom kao izvorom.
removeIf(predikatfilter)Uklanja sve elemente ove zbirke koji zadovoljavaju zadani predikat.
tok()Vraća sekvencijalni tok s ovom zbirkom kao izvorom.
toArray?(IntFunkcijagenerator)Vraća polje koje sadrži sve elemente u ovoj zbirci koristeći osiguranu funkciju generatora za dodjelu vraćenog polja.

Metode deklarirane u sučelju java.lang.Iterable

metodaOpis
forEach(Potrošačakcijski) Izvodi zadanu radnju za svaki element Iterable dok se svi elementi ne obrade ili dok akcija ne izbaci iznimku.