I Java Navigerbart sæt er en undertype af Sorteret Sæt interface. Det giver os mulighed for at udføre forskellige operationer som f.eks. at finde de nærmeste matcher for et givet element i faldende rækkefølge iteration og andre. Det giver metoder til at navigere gennem elementerne i sættet.
For eksempel NavigableSet-grænsefladen giver os mulighed for at navigere gennem sættet i både stigende og faldende rækkefølge i modsætning til SortedSet, som kun understøtter den stigende rækkefølge. Klasserne, der implementerer NavigableSet-grænsefladen, er Træsæt og ConcurrentSkipListSet
- NavigableSet udvider SortedSet og giver således metoder som first() last() headSet() tailSet() osv.
- Det giver dig mulighed for at navigere i både stigende og faldende rækkefølge
- Den mest almindelige implementering af NavigableSet er TreeSet.
Eksempel: Dette eksempel viser oprettelse af et NavigableSet ved hjælp af TreeSet og tilføjelse af elementer til det, som automatisk sorterer dem i stigende rækkefø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); } }
Produktion
Navigable Set: [10 20 30 40 50]
Diagrammet nedenfor viser arvestrukturen i Javas samlingsramme relateret til sæt.
TreeSet er en klasse, der implementerer Navigerbart sæt som igen forlænger SortedSet som forlænger Sæt .
Erklæring om NavigableSet
I Java kan erklæringen om NavigableSet erklæres som:
Navigerbart sæt
sætnavn;
Bemærk: ' Type' er typen af element i sættet (f.eks. heltalsstreng osv.), og setName er navnet på variablen.
Oprettelse af NavigableSet-objekter
Vi kan ikke oprette et NavigableSet direkte, da det er en grænseflade. I stedet bruger vi en klasse som Træsæt der implementerer det. Ved hjælp af generiske artikler kan vi definere den type objekter, som sættet skal gemme. Dette typesikre sæt kan defineres som:
js settimeout
Navigerbart sæt
sæt = nyt træsæt ();
Eksempel: Dette eksempel viser, hvordan man bruger forskellige metoder til NavigableSet som descedingSet() tailSet() lower() pollFirst() og pollLast() til at manipulere og navigere i et sorteret sæt i både normal og omvendt rækkefø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()); } }
Produktion:
Udførelse af forskellige handlinger på NavigableSet
1. Tilføjelse af elementer: Vi kan bruge tilføje() metode til at indsætte elementer i NavigableSet. Elementer gemmes i sorteret rækkefølge, ingen dubletter er tilladt, og null-værdier accepteres heller ikke af NavigableSet.
Eksempel: Dette eksempel demonstrerer tilføjelse af elementer til et NavigableSet ved hjælp af add(), hvor dubletter ignoreres, og elementerne sorteres i stigende rækkefø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); } }
Produktion
NavigableSet: [A B C]
2. Adgang til elementer: Efter tilføjelse af elementerne, hvis vi ønsker at få adgang til elementerne, kan vi bruge indbyggede metoder som indeholder() først() sidst() osv.
Eksempel: Dette eksempel viser tilføjelse af elementer til et NavigableSet, der kontrollerer for et elements eksistens og henter de første og sidste elementer.
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()); } }
Produktion
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C
3. Fjernelse af elementer: Værdierne kan fjernes fra NavigableSet ved hjælp af fjerne() pollFirst() pollLast() .
Eksempel: Dette eksempel viser fjernelse af 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); } }
Produktion
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: Der er forskellige måder at gentage gennem NavigableSet. Den mest berømte er at bruge forbedret til loop.
Eksempel: Dette eksempel viser tilføjelse af elementer til et NavigableSet og iteration gennem det i stigende rækkefø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 + ' '); } }
Produktion
A B C D E Z
Metoder
Følgende er de metoder, der findes i NavigableSet-grænsefladen.
Metoder | Beskrivelse |
|---|---|
| loft(E e) | Returnerer det mindste element i dette sæt større end eller lig med det givne element eller null, hvis der ikke er et sådant element. |
| descendingIterator() | Returnerer en iterator over elementerne i dette sæt i faldende rækkefølge. |
| descendingSet() | Returnerer en omvendt rækkefølge af elementerne i dette sæt. |
| gulv(E e) | Returnerer det største element i dette sæt mindre end eller lig med det givne element eller null, hvis der ikke er et sådant element. |
| headset (E toElement) | Returnerer en visning af den del af dette sæt, hvis elementer er strengt mindre end toElement. |
| headset (E toElement boolean inklusive) | Returnerer en visning af den del af dette sæt, hvis elementer er mindre end (eller lig med, hvis inklusive er sandt) tilElement. |
| højere(E e) | Returnerer det mindste element i dette sæt strengt taget større end det givne element eller null, hvis der ikke er et sådant element. |
| iterator() | Returnerer en iterator over elementerne i dette sæt i stigende rækkefølge. |
| lavere(E e) | Returnerer det største element i dette sæt strengt mindre end det givne element eller null, hvis der ikke er et sådant element. |
| pollFirst() | Henter og fjerner det første (laveste) element eller returnerer null, hvis dette sæt er tomt. |
| pollLast() | Henter og fjerner det sidste (højeste) element eller returnerer null, hvis dette sæt er tomt. |
subSet(E fromElement boolean fra Inclusive E til Element boolean til Inclusive) | Returnerer en visning af den del af dette sæt, hvis elementer spænder fra fromElement til toElement. |
| delsæt(E fraElement E tilElement) | Returnerer en visning af den del af dette sæt, hvis elementer strækker sig fra fra Element inklusive til til Eksklusivt Element. |
| halesæt (E fra Element) | Returnerer en visning af den del af dette sæt, hvis elementer er større end eller lig med fromElement. |
| tailSet (E fra Element boolean inklusive) | Returnerer en visning af den del af dette sæt, hvis elementer er større end (eller lig med, hvis inklusive er sandt) fra Element. |
Metoder arvet fra Interface java.util.SortedSet
Metode | Beskrivelse |
|---|---|
| komparator() | Denne metode returnerer komparatoren, der bruges til at bestille elementerne i dette sæt, eller nul, hvis dette sæt bruger den naturlige rækkefølge af dets elementer. |
| først() | Denne metode returnerer det første (laveste) element, der findes i dette sæt. |
| sidst() | Denne metode returnerer det sidste (højeste) element til stede i sættet. |
| splitter() | Opretter en Spliterator over elementerne i dette sorterede sæt. |
Metoder arvet fra Interface java.util.Set
Metode | Beskrivelse |
|---|---|
| tilføje(element) | Denne metode bruges til at tilføje et bestemt element til sættet. Funktionen tilføjer kun elementet, hvis det angivne element ikke allerede er til stede i sættet, ellers returnerer funktionen False, hvis elementet allerede er til stede i sættet. |
| addAll (samling) | Denne metode bruges til at tilføje alle elementerne fra den nævnte samling til det eksisterende sæt. Elementerne tilføjes tilfældigt uden at følge nogen specifik rækkefølge. |
| klar() | Denne metode bruges til at fjerne alle elementer fra sættet, men ikke til at slette sættet. Referencen til sættet eksisterer stadig. |
| indeholder (element) | Denne metode bruges til at kontrollere, om et specifikt element er til stede i sættet eller ej. |
| indeholder alle (samling) | Denne metode bruges til at kontrollere, om sættet indeholder alle de elementer, der er til stede i den givne samling eller ej. Denne metode returnerer sand, hvis sættet indeholder alle elementerne, og returnerer falsk, hvis nogen af elementerne mangler. |
| er lig med () | Sammenligner det angivne objekt med dette sæt for lighed. |
| hashCode() | Denne metode bruges til at få hashCode-værdien for denne forekomst af sættet. Det returnerer en heltalsværdi, som er hashCode-værdien for denne forekomst af sættet. |
| er tom() | Denne metode bruges til at kontrollere, om et NavigableSet er tomt eller ej. |
| fjerne (element) | Denne metode bruges til at fjerne det givne element fra sættet. Denne metode returnerer True, hvis det angivne element er til stede i sættet, ellers returnerer den False. |
| removeAll (samling) | Denne metode bruges til at fjerne alle de elementer fra samlingen, som er til stede i sættet. Denne metode returnerer sand, hvis dette sæt ændres som følge af opkaldet. |
| retainAll (samling) | Denne metode bruges til at bevare alle de elementer fra sættet, som er nævnt i den givne samling. Denne metode returnerer sand, hvis dette sæt ændres som følge af opkaldet. |
| størrelse() | Denne metode bruges til at få størrelsen på sættet. Dette returnerer en heltalsværdi, som angiver antallet af elementer. |
| toArray() | Denne metode bruges til at danne en række af de samme elementer som sættet. |
| toArray(T[] a) | Returnerer en matrix, der indeholder alle elementerne i dette sæt; runtime-typen for den returnerede matrix er den for den angivne matrix. |
Metoder erklæret i Interface java.util.Collection
| Metode | Beskrivelse |
|---|---|
| parallelStream() | Returnerer en muligvis parallel strøm med denne samling som kilde. |
| removeIf(prædikat super E>filter) | Fjerner alle de elementer i denne samling, der opfylder det givne prædikat. |
| strøm() | Returnerer en sekventiel stream med denne samling som kilde. |
| toArray?(IntFunction | Returnerer et array, der indeholder alle elementerne i denne samling, ved hjælp af den medfølgende generatorfunktion til at allokere det returnerede array. |
Metoder erklæret i Interface java.lang.Iterable
| Metode | Beskrivelse |
|---|---|
| for Hver (Forbruger super T>handling) | Udfører den givne handling for hvert element i Iterable, indtil alle elementer er blevet behandlet, eller handlingen kaster en undtagelse. |