Op Java de NavigeerbareSet is een subtype van de GesorteerdeSet interface. Het stelt ons in staat verschillende bewerkingen uit te voeren, zoals het verkrijgen van de beste overeenkomsten voor een iteratie van een bepaald element in aflopende volgorde en andere. Het biedt methoden om door de elementen in de set te navigeren.
Bijvoorbeeld Met de NavigableSet-interface kunnen we zowel in oplopende als aflopende volgorde door de set navigeren, in tegenstelling tot de SortedSet die alleen de oplopende volgorde ondersteunt. De klassen die de NavigableSet-interface implementeren zijn BoomSet En Gelijktijdige SkipListSet
Java instellen
- NavigableSet breidt SortedSet uit en biedt dus methoden zoals first() last() headSet() tailSet() etc.
- Hiermee kunt u in beide richtingen in oplopende en aflopende volgorde navigeren
- De meest voorkomende implementatie van NavigableSet is TreeSet.
Voorbeeld: Dit voorbeeld demonstreert het maken van een NavigableSet met behulp van TreeSet en het toevoegen van elementen eraan, waardoor ze automatisch in oplopende volgorde worden gesorteerd.
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); } }
Uitvoer
Navigable Set: [10 20 30 40 50]
Het onderstaande diagram demonstreert de overervingsstructuur in het Java-collectieframework met betrekking tot sets.
TreeSet is een klasse die implementeert NavigeerbareSet die op zijn beurt SortedSet uitbreidt, die zich uitstrekt Set .
Verklaring van NavigableSet
In Java kan de declaratie van NavigableSet worden gedeclareerd als:
NavigeerbareSet
setNaam;
Opmerking: ' Type' is het type element in de set (bijvoorbeeld geheel getal String enz.) en setName is de naam van de variabele.
NavigableSet-objecten maken
We kunnen niet rechtstreeks een NavigableSet maken, omdat het een interface is. In plaats daarvan gebruiken we een klasse zoals BoomSet die het implementeert. Met behulp van generieke gegevens kunnen we definiëren welk type objecten de set zal opslaan. Deze typeveilige set kan worden gedefinieerd als:
NavigeerbareSet
set = nieuwe BoomSet ();
Voorbeeld: Dit voorbeeld laat zien hoe u verschillende methoden van NavigableSet kunt gebruiken, zoals descedingSet() tailSet() lower() pollFirst() en pollLast() om een gesorteerde set in zowel normale als omgekeerde volgorde te manipuleren en te navigeren.
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()); } }
Uitgang:
Verschillende bewerkingen uitvoeren op NavigableSet
1. Elementen toevoegen: Wij kunnen gebruik maken van de toevoegen() methode om elementen in de NavigableSet in te voegen. Elementen worden in de gesorteerde volgorde opgeslagen. Er zijn geen duplicaten toegestaan en nulwaarden worden ook niet geaccepteerd door de NavigableSet.
java toevoegen aan een array
Voorbeeld: Dit voorbeeld demonstreert het toevoegen van elementen aan een NavigableSet met add() waarbij duplicaten worden genegeerd en de elementen in oplopende volgorde worden gesorteerd.
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); } }
Uitvoer
NavigableSet: [A B C]
2. Toegang tot elementen: Als we na het toevoegen van de elementen toegang willen tot de elementen, kunnen we ingebouwde methoden gebruiken zoals bevat() Eerst() laatst() enz.
Voorbeeld: Dit voorbeeld demonstreert het toevoegen van elementen aan een NavigableSet, waarbij wordt gecontroleerd of een element bestaat en het eerste en laatste element wordt opgehaald.
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()); } }
Uitvoer
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C
3. Elementen verwijderen: De waarden kunnen uit de NavigableSet worden verwijderd met behulp van de verwijderen() opiniepeilingEerste() opiniepeilingLaatste() .
Voorbeeld: Dit voorbeeld demonstreert het verwijderen van elementen uit de 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); } }
Uitvoer
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 elementen: Er zijn verschillende manieren om de NavigableSet te doorlopen. De bekendste is het gebruik van de verbeterd voor lus.
Voorbeeld: Dit voorbeeld demonstreert het toevoegen van elementen aan een NavigableSet en het doorlopen ervan in oplopende volgorde.
object van array in JavaJava
// 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 + ' '); } }
Uitvoer
A B C D E Z
Methoden
Hieronder volgen de methoden die aanwezig zijn in de NavigableSet-interface.
Methoden | Beschrijving |
|---|---|
| plafond(E e) | Retourneert het kleinste element in deze set dat groter is dan of gelijk is aan het gegeven element, of nul als een dergelijk element niet bestaat. |
| aflopendeIterator() | Retourneert een iterator over de elementen in deze set in aflopende volgorde. |
| aflopendSet() | Retourneert een weergave in omgekeerde volgorde van de elementen in deze set. |
| verdieping(E e) | Retourneert het grootste element in deze set, kleiner dan of gelijk aan het gegeven element, of nul als een dergelijk element niet bestaat. |
| hoofdtelefoon(E naarElement) | Retourneert een weergave van het gedeelte van deze set waarvan de elementen strikt kleiner zijn dan toElement. |
| headSet(E tot en met Element Boolean) | Retourneert een weergave van het gedeelte van deze set waarvan de elementen kleiner zijn dan (of gelijk aan als inclusief waar is) toElement. |
| hoger(E e) | Retourneert het kleinste element in deze set dat strikt groter is dan het opgegeven element, of nul als een dergelijk element niet bestaat. |
| iterator() | Retourneert een iterator over de elementen in deze set in oplopende volgorde. |
| lager(E e) | Retourneert het grootste element in deze set, strikt kleiner dan het opgegeven element, of nul als een dergelijk element niet bestaat. |
| opiniepeilingEerste() | Haalt het eerste (laagste) element op en verwijdert het of retourneert null als deze set leeg is. |
| opiniepeilingLaatste() | Haalt het laatste (hoogste) element op en verwijdert het of retourneert null als deze set leeg is. |
subSet(E vanElement boolean vanInclusief E totElement boolean totInclusief) tafels maken in latex | Retourneert een weergave van het gedeelte van deze set waarvan de elementen variëren van vanElement tot totElement. |
| subSet(E vanElement E naarElement) | Retourneert een weergave van het gedeelte van deze set waarvan de elementen variëren van vanElement inclusief totElement exclusief. |
| staartSet(E vanElement) | Retourneert een weergave van het gedeelte van deze set waarvan de elementen groter zijn dan of gelijk zijn aan fromElement. |
| tailSet(E van Element boolean inclusief) | Retourneert een weergave van het gedeelte van deze set waarvan de elementen groter zijn dan (of gelijk aan als inclusief waar is) fromElement. |
Methoden overgenomen van interface java.util.SortedSet
Methode | Beschrijving |
|---|---|
| comparator() | Deze methode retourneert de comparator die is gebruikt om de elementen in deze set te ordenen, of nul als deze set de natuurlijke volgorde van zijn elementen gebruikt. |
| Eerst() | Deze methode retourneert het eerste (laagste) element dat in deze set aanwezig is. |
| laatst() | Deze methode retourneert het laatste (hoogste) element dat in de set aanwezig is. |
| splitter() | Creëert een Spliterator over de elementen in deze gesorteerde set. |
Methoden overgenomen van interface java.util.Set
Methode | Beschrijving |
|---|---|
| toevoegen(element) | Deze methode wordt gebruikt om een specifiek element aan de set toe te voegen. De functie voegt het element alleen toe als het opgegeven element nog niet aanwezig is in de set. Anders retourneert de functie False als het element al aanwezig is in de set. |
| addAll(verzameling) | Deze methode wordt gebruikt om alle elementen uit de genoemde collectie aan de bestaande set toe te voegen. De elementen worden willekeurig toegevoegd zonder een specifieke volgorde te volgen. |
| duidelijk() | Deze methode wordt gebruikt om alle elementen uit de set te verwijderen, maar niet om de set te verwijderen. De referentie voor de set bestaat nog steeds. |
| bevat(element) | Deze methode wordt gebruikt om te controleren of een specifiek element aanwezig is in de Set of niet. |
| bevatAlles(verzameling) | Deze methode wordt gebruikt om te controleren of de set alle elementen bevat die aanwezig zijn in de gegeven collectie of niet. Deze methode retourneert true als de set alle elementen bevat en false als een van de elementen ontbreekt. |
| is gelijk aan() | Vergelijkt het opgegeven object met deze set op gelijkheid. |
| hashCode() | Deze methode wordt gebruikt om de hashCode-waarde voor dit exemplaar van de Set op te halen. Het retourneert een geheel getal dat de hashCode-waarde is voor dit exemplaar van de Set. |
| isLeeg() | Deze methode wordt gebruikt om te controleren of een NavigableSet leeg is of niet. |
| verwijder(element) | Deze methode wordt gebruikt om het gegeven element uit de set te verwijderen. Deze methode retourneert True als het opgegeven element aanwezig is in de set, anders retourneert het False. |
| verwijderAlles(verzameling) | Deze methode wordt gebruikt om alle elementen uit de collectie te verwijderen die in de set aanwezig zijn. Deze methode retourneert true als deze set is gewijzigd als gevolg van de aanroep. |
| behoudenAlles(verzameling) | Deze methode wordt gebruikt om alle elementen uit de set te behouden die in de betreffende collectie worden vermeld. Deze methode retourneert true als deze set is gewijzigd als gevolg van de aanroep. |
| maat() | Deze methode wordt gebruikt om de grootte van de set te bepalen. Dit retourneert een geheel getal dat het aantal elementen aangeeft. |
| toArray() | Deze methode wordt gebruikt om een array te vormen van dezelfde elementen als die van de Set. |
| toArray(T[] a) | Geeft een array terug die alle elementen in deze set bevat; het runtimetype van de geretourneerde array is dat van de opgegeven array. |
Methoden gedeclareerd in Interface java.util.Collection
| Methode | Beschrijving |
|---|---|
| parallelStream() | Retourneert een mogelijk parallelle stream met deze verzameling als bron. |
| removeIf(Predikaat super E>filter) | Verwijdert alle elementen van deze verzameling die aan het gegeven predikaat voldoen. |
| stroom() | Retourneert een sequentiële stream met deze verzameling als bron. |
| toArray?(IntFunction | Retourneert een array met alle elementen in deze verzameling, waarbij gebruik wordt gemaakt van de meegeleverde generatorfunctie om de geretourneerde array toe te wijzen. |
Methoden gedeclareerd in Interface java.lang.Iterable
| Methode | Beschrijving |
|---|---|
| voorElke(Consument super T>actie) | Voert de gegeven actie uit voor elk element van de iterabele totdat alle elementen zijn verwerkt of de actie een uitzondering genereert. |