logo

NavigableSet i Java

I Java Navigerbart sett er en undertype av SortedSet grensesnitt. Det lar oss utføre forskjellige operasjoner som å finne de nærmeste treffene for et gitt element i synkende rekkefølge og andre. Den gir metoder for å navigere gjennom elementene i settet.

For eksempel NavigableSet-grensesnittet lar oss navigere gjennom settet i både stigende og synkende rekkefølge i motsetning til SortedSet som kun støtter stigende rekkefølge. Klassene som implementerer NavigableSet-grensesnittet er Tresett  og  Concurrent SkipListSet

  • NavigableSet utvider SortedSet og gir dermed metoder som first() last() headSet() tailSet() osv.
  • Den lar deg navigere i begge retninger stigende og synkende rekkefølge
  • Den vanligste implementeringen av NavigableSet er TreeSet.

Eksempel: Dette eksemplet demonstrerer å lage et NavigableSet ved å bruke TreeSet og legge til elementer til det som automatisk sorterer dem i stigende rekkefølge.



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

Produksjon
Navigable Set: [10 20 30 40 50] 


Diagrammet nedenfor viser arvestrukturen i Javas samlingsrammeverk relatert til sett.

Navigerbartsett-i-Java-med-eksempler' title=

TreeSet er en klasse som implementerer Navigerbart sett som igjen forlenger SortedSet som forlenger Sett .

Erklæring om NavigableSet

I Java kan erklæringen til NavigableSet deklareres som:

Navigerbart settsettnavn;

Merk: ' Type' er typen element i settet (f.eks. heltallsstreng osv.) og setName er navnet på variabelen.

Opprette NavigableSet-objekter

Vi kan ikke opprette et NavigableSet direkte siden det er et grensesnitt. I stedet bruker vi en klasse som Tresett som implementerer det. Ved hjelp av generiske artikler kan vi definere hvilken type objekter settet skal lagre. Dette typesikre settet kan defineres som:

stlc

Navigerbart settsett = nytt tresett();

Eksempel: Dette eksemplet viser hvordan du bruker ulike metoder for NavigableSet som descedingSet() tailSet() lower() pollFirst() og pollLast() for å manipulere og navigere i et sortert sett i både normal og omvendt rekkefølge.

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

Produksjon:

Produksjon' loading='lazy' title=

Utføre forskjellige operasjoner på NavigableSet

1. Legge til elementer: Vi kan bruke legge til() metode for å sette inn elementer i NavigableSet. Elementer lagres i sortert rekkefølge, ingen duplikater er tillatt og nullverdier aksepteres heller ikke av NavigableSet.

Eksempel: Dette eksemplet demonstrerer å legge til elementer i et NavigableSet ved hjelp av add() hvor duplikater ignoreres og elementene sorteres i stigende rekkefølge.

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

Produksjon
NavigableSet: [A B C] 


2. Tilgang til elementer: Etter å ha lagt til elementene hvis vi ønsker å få tilgang til elementene, kan vi bruke innebygde metoder som inneholder() først() siste() osv.

Eksempel: Dette eksemplet demonstrerer å legge til elementer i et NavigableSet som sjekker om et element eksisterer og henter de første og siste elementene.

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

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


3. Fjerning av elementer: Verdiene kan fjernes fra NavigableSet ved å bruke fjerne() pollFirst() pollLast() .

Eksempel: Dette eksemplet viser fjerning av elementer fra NavigableSet.

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

Produksjon
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. Itererende elementer: Det er forskjellige måter å iterere gjennom NavigableSet. Den mest kjente er å bruke  forbedret for loop.

Eksempel: Dette eksemplet demonstrerer å legge til elementer i et NavigableSet og iterere gjennom det i stigende rekkefølge.

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

Produksjon
A B C D E Z 

Metoder

Følgende er metodene som finnes i NavigableSet-grensesnittet. 

Metoder

Beskrivelse

 tak(E e) Returnerer det minste elementet i dette settet større enn eller lik det gitte elementet eller null hvis det ikke finnes et slikt element.
descendingIterator() Returnerer en iterator over elementene i dette settet i synkende rekkefølge.
descendingSet() Returnerer en omvendt rekkefølge av elementene i dette settet.
etasje(E e) Returnerer det største elementet i dette settet mindre enn eller lik det gitte elementet eller null hvis det ikke finnes et slikt element.
hodesett (E toElement) Returnerer en visning av delen av dette settet hvis elementer er strengt mindre enn toElement.
hodesett (E toElement boolesk inkludert) Returnerer en visning av delen av dette settet hvis elementer er mindre enn (eller lik hvis inkluderende er sant) tilElement.
høyere(E e) Returnerer det minste elementet i dette settet strengt tatt større enn det gitte elementet eller null hvis det ikke finnes et slikt element.
iterator() Returnerer en iterator over elementene i dette settet i stigende rekkefølge.
lavere(E e) Returnerer det største elementet i dette settet strengt mindre enn det gitte elementet eller null hvis det ikke finnes et slikt element.
pollFirst() Henter og fjerner det første (laveste) elementet eller returnerer null hvis dette settet er tomt.
pollLast() Henter og fjerner det siste (høyeste) elementet eller returnerer null hvis dette settet er tomt.

delsett(E fraElement boolesk

fraInklusive E tilElement boolean tilInclusive)

Returnerer en visning av delen av dette settet hvis elementer spenner fra fromElement til toElement.
delsett(E fraElement E tilElement) Returnerer en visning av delen av dette settet hvis elementer spenner fra fromElement inclusive til toElement exclusive.
tailSet(E fromElement)Returnerer en visning av delen av dette settet hvis elementer er større enn eller lik fromElement.
tailSet(E fromElement boolean inclusive)Returnerer en visning av delen av dette settet hvis elementer er større enn (eller lik hvis inkluderende er sant) fraElement.

                                                                                                                                              
Metoder arvet fra grensesnitt java.util.SortedSet

Metode

Beskrivelse

komparator()  Denne metoden returnerer komparatoren som brukes til å bestille elementene i dette settet eller null hvis dette settet bruker den naturlige rekkefølgen av elementene.
først() Denne metoden returnerer det første (laveste) elementet i dette settet.
siste() Denne metoden returnerer det siste (høyeste) elementet i settet.
splitter()Oppretter en splitter over elementene i dette sorterte settet.

Metoder arvet fra grensesnitt java.util.Set

Metode

Beskrivelse

add(element) Denne metoden brukes til å legge til et spesifikt element til settet. Funksjonen legger til elementet bare hvis det angitte elementet ikke allerede er til stede i settet, ellers returnerer funksjonen False hvis elementet allerede er til stede i settet.
addAll (samling)  Denne metoden brukes til å legge til alle elementene fra den nevnte samlingen til det eksisterende settet. Elementene legges til tilfeldig uten å følge noen bestemt rekkefølge.
klar()   Denne metoden brukes til å fjerne alle elementene fra settet, men ikke slette settet. Referansen for settet eksisterer fortsatt.
inneholder(element) Denne metoden brukes til å sjekke om et spesifikt element er til stede i settet eller ikke.
inneholder alle (samling) 

Denne metoden brukes til å sjekke om settet inneholder alle elementene som finnes i den gitte samlingen eller ikke.

Denne metoden returnerer true hvis settet inneholder alle elementene og returnerer false hvis noen av elementene mangler.

lik() Sammenligner det angitte objektet med dette settet for likhet.
hashkode()  Denne metoden brukes til å få hashCode-verdien for denne forekomsten av settet. Den returnerer en heltallsverdi som er hashCode-verdien for denne forekomsten av settet.
isEmpty() Denne metoden brukes til å sjekke om et NavigableSet er tomt eller ikke.
fjerne (element) Denne metoden brukes til å fjerne det gitte elementet fra settet. Denne metoden returnerer True hvis det spesifiserte elementet er tilstede i settet, ellers returnerer den False.
removeAll (samling) Denne metoden brukes til å fjerne alle elementene fra samlingen som finnes i settet. Denne metoden returnerer sann hvis dette settet endres som et resultat av anropet.
retainAll (samling) Denne metoden brukes til å beholde alle elementene fra settet som er nevnt i den gitte samlingen. Denne metoden returnerer sann hvis dette settet endres som et resultat av anropet.
størrelse() Denne metoden brukes for å få størrelsen på settet. Dette returnerer en heltallsverdi som angir antall elementer.
toArray() Denne metoden brukes til å danne en rekke av de samme elementene som settet.
 toArray(T[] a)Returnerer en matrise som inneholder alle elementene i dette settet; kjøretidstypen for den returnerte matrisen er den for den angitte matrisen.

Metoder deklarert i Interface java.util.Collection

MetodeBeskrivelse
parallelStream()Returnerer en muligens parallell strøm med denne samlingen som kilde.
removeIf(Predikatfilter)Fjerner alle elementene i denne samlingen som tilfredsstiller det gitte predikatet.
strøm()Returnerer en sekvensiell strøm med denne samlingen som kilde.
toArray?(IntFunctiongenerator)Returnerer en matrise som inneholder alle elementene i denne samlingen ved å bruke den medfølgende generatorfunksjonen for å allokere den returnerte matrisen.

Metoder deklarert i grensesnitt java.lang.Iterable

MetodeBeskrivelse
forHver(Forbrukerhandling) Utfører den gitte handlingen for hvert element i Iterable til alle elementene er behandlet eller handlingen gir et unntak.