logo

Navigeerbare set in Java

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.

Navigeerbare set-in-Java-met-voorbeelden' title=

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:

NavigeerbareSetsetNaam;

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:

NavigeerbareSetset = 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:

Uitvoer' loading='lazy' title=

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

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

MethodeBeschrijving
parallelStream()Retourneert een mogelijk parallelle stream met deze verzameling als bron.
removeIf(Predikaatfilter)Verwijdert alle elementen van deze verzameling die aan het gegeven predikaat voldoen.
stroom()Retourneert een sequentiële stream met deze verzameling als bron.
toArray?(IntFunctiongenerator)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

MethodeBeschrijving
voorElke(Consumentactie) Voert de gegeven actie uit voor elk element van de iterabele totdat alle elementen zijn verwerkt of de actie een uitzondering genereert.