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.
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:
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.
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
| 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. |