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.
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 sett
settnavn;
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 sett
sett = 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:
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 smelterJava
// 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
| Metode | Beskrivelse |
|---|---|
| parallelStream() | Returnerer en muligens parallell strøm med denne samlingen som kilde. |
| removeIf(Predikat super E>filter) | Fjerner alle elementene i denne samlingen som tilfredsstiller det gitte predikatet. |
| strøm() | Returnerer en sekvensiell strøm med denne samlingen som kilde. |
| toArray?(IntFunction | 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
| Metode | Beskrivelse |
|---|---|
| forHver(Forbruker super T>handling) | Utfører den gitte handlingen for hvert element i Iterable til alle elementene er behandlet eller handlingen gir et unntak. |