logo

NavigableSet in Java

In Java die NavigableSet ist ein Untertyp von SortedSet Schnittstelle. Es ermöglicht uns, verschiedene Operationen durchzuführen, z. B. die Ermittlung der nächsten Übereinstimmungen für ein bestimmtes Element in absteigender Reihenfolge und andere. Es bietet Methoden zum Navigieren durch die Elemente im Satz.

Zum Beispiel Mit der NavigableSet-Schnittstelle können wir im Gegensatz zum SortedSet, das nur die aufsteigende Reihenfolge unterstützt, sowohl in aufsteigender als auch in absteigender Reihenfolge durch die Menge navigieren. Die Klassen, die die NavigableSet-Schnittstelle implementieren, sind TreeSet  Und  ConcurrentSkipListSet

  • NavigableSet erweitert SortedSet und stellt somit Methoden wie first() last() headSet() tailSet() usw. zur Verfügung.
  • Sie können damit in beide Richtungen in aufsteigender und absteigender Reihenfolge navigieren
  • Die häufigste Implementierung von NavigableSet ist TreeSet.

Beispiel: In diesem Beispiel wird das Erstellen eines NavigableSet mithilfe von TreeSet und das Hinzufügen von Elementen veranschaulicht, wodurch diese automatisch in aufsteigender Reihenfolge sortiert werden.



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);  } } 

Ausgabe
Navigable Set: [10 20 30 40 50] 


Das folgende Diagramm zeigt die Vererbungsstruktur im Sammlungsframework von Java in Bezug auf Mengen.

NavigableSet-in-Java-with-Examples' title=

TreeSet ist eine Klasse, die implementiert NavigableSet was wiederum SortedSet erweitert, das erweitert Satz .

Deklaration von NavigableSet

In Java kann die Deklaration von NavigableSet wie folgt deklariert werden:

NavigableSetsetName;

Notiz: ' „Typ“ ist der Typ des Elements in der Menge (z. B. Ganzzahl-String usw.) und „setName“ ist der Name der Variablen.

NavigableSet-Objekte erstellen

Wir können ein NavigableSet nicht direkt erstellen, da es sich um eine Schnittstelle handelt. Stattdessen verwenden wir eine Klasse wie TreeSet das setzt es um. Mithilfe von Generika können wir die Art der Objekte definieren, die in der Menge gespeichert werden. Dieser typsichere Satz kann wie folgt definiert werden:

NavigableSetset = neues TreeSet();

Ganzzahl zum String in Java

Beispiel: Dieses Beispiel zeigt, wie verschiedene Methoden von NavigableSet wie descedingSet() tailSet() Lower() pollFirst() und pollLast() verwendet werden, um eine sortierte Menge sowohl in normaler als auch in umgekehrter Reihenfolge zu manipulieren und zu navigieren.

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());  } } 

Ausgabe:

Ausgabe' loading='lazy' title=

Durchführen verschiedener Vorgänge für NavigableSet

1. Elemente hinzufügen: Wir können das nutzen hinzufügen() Methode zum Einfügen von Elementen in das NavigableSet. Elemente werden in der sortierten Reihenfolge gespeichert, es sind keine Duplikate zulässig und Nullwerte werden vom NavigableSet ebenfalls nicht akzeptiert.

Beispiel: Dieses Beispiel zeigt das Hinzufügen von Elementen zu einem NavigableSet mit add(), wobei Duplikate ignoriert und die Elemente in aufsteigender Reihenfolge sortiert werden.

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);  } } 

Ausgabe
NavigableSet: [A B C] 


2. Zugriff auf Elemente: Wenn wir nach dem Hinzufügen der Elemente auf die Elemente zugreifen möchten, können wir integrierte Methoden wie verwenden enthält() Erste() zuletzt() usw.

Beispiel: Dieses Beispiel zeigt das Hinzufügen von Elementen zu einem NavigableSet, prüft die Existenz eines Elements und ruft das erste und letzte Element ab.

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());  } } 

Ausgabe
NavigableSet: [A B C] D exists in the NavigableSet?: false First Element of NavigableSet: A Last Element of NavigableSet: C 


3. Elemente entfernen: Die Werte können mit dem aus dem NavigableSet entfernt werden entfernen() pollFirst() pollLast() .

Beispiel: Dieses Beispiel zeigt das Entfernen von Elementen aus dem 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);  } } 

Ausgabe
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. Iterierende Elemente: Es gibt verschiedene Möglichkeiten, das NavigableSet zu durchlaufen. Die bekannteste davon ist die Verwendung von  erweiterte for-Schleife.

Was ist Java-Hashmap?

Beispiel: In diesem Beispiel wird das Hinzufügen von Elementen zu einem NavigableSet und das Durchlaufen dieses Elements in aufsteigender Reihenfolge veranschaulicht.

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

Ausgabe
A B C D E Z 

Methoden

Im Folgenden sind die Methoden aufgeführt, die in der NavigableSet-Schnittstelle vorhanden sind. 

Methoden

Beschreibung

 Decke(E e) Gibt das kleinste Element in dieser Menge zurück, das größer oder gleich dem angegebenen Element ist, oder null, wenn kein solches Element vorhanden ist.
absteigenderIterator() Gibt einen Iterator über die Elemente in dieser Menge in absteigender Reihenfolge zurück.
absteigender Satz() Gibt eine Ansicht der in dieser Menge enthaltenen Elemente in umgekehrter Reihenfolge zurück.
Boden(E e) Gibt das größte Element in dieser Menge zurück, das kleiner oder gleich dem angegebenen Element ist, oder null, wenn es kein solches Element gibt.
headSet(E toElement) Gibt eine Ansicht des Teils dieser Menge zurück, dessen Elemente strikt kleiner als toElement sind.
headSet(E toElement boolean inklusive) Gibt eine Ansicht des Teils dieser Menge zurück, dessen Elemente kleiner als (oder gleich, wenn inklusive wahr ist) toElement sind.
höher(E e) Gibt das kleinste Element in dieser Menge zurück, das unbedingt größer als das angegebene Element ist, oder null, wenn kein solches Element vorhanden ist.
Iterator() Gibt einen Iterator über die Elemente in dieser Menge in aufsteigender Reihenfolge zurück.
niedriger(E e) Gibt das größte Element in dieser Menge zurück, das unbedingt kleiner als das angegebene Element ist, oder null, wenn kein solches Element vorhanden ist.
pollFirst() Ruft das erste (unterste) Element ab und entfernt es oder gibt null zurück, wenn dieser Satz leer ist.
pollLast() Ruft das letzte (höchste) Element ab und entfernt es oder gibt null zurück, wenn dieser Satz leer ist.

subSet(E fromElement boolean

fromInclusive E toElement boolean toInclusive)

Gibt eine Ansicht des Teils dieser Menge zurück, dessen Elemente von fromElement bis toElement reichen.
subSet(E fromElement E toElement) Gibt eine Ansicht des Teils dieser Menge zurück, dessen Elemente von „fromElement inklusive“ bis „toElement exklusiv“ reichen.
tailSet(E fromElement)Gibt eine Ansicht des Teils dieser Menge zurück, dessen Elemente größer oder gleich fromElement sind.
tailSet(E fromElement boolean inklusive)Gibt eine Ansicht des Teils dieser Menge zurück, dessen Elemente größer als (oder gleich, wenn inklusive wahr ist) fromElement sind.

                                                                                                                                              
Von der Schnittstelle java.util.SortedSet geerbte Methoden

Verfahren

Beschreibung

Komparator()  Diese Methode gibt den Komparator zurück, der zum Ordnen der Elemente in dieser Menge verwendet wird, oder null, wenn diese Menge die natürliche Reihenfolge ihrer Elemente verwendet.
Erste() Diese Methode gibt das erste (niedrigste) in dieser Menge vorhandene Element zurück.
zuletzt() Diese Methode gibt das letzte (höchste) in der Menge vorhandene Element zurück.
Splitterator()Erstellt einen Spliterator über die Elemente in dieser sortierten Menge.

Von der Schnittstelle java.util.Set geerbte Methoden

Verfahren

Beschreibung

Git, füge alles hinzu
hinzufügen(Element) Mit dieser Methode wird der Menge ein bestimmtes Element hinzugefügt. Die Funktion fügt das Element nur hinzu, wenn das angegebene Element noch nicht in der Menge vorhanden ist. Andernfalls gibt die Funktion „False“ zurück, wenn das Element bereits in der Menge vorhanden ist.
addAll(collection)  Mit dieser Methode werden alle Elemente aus der genannten Sammlung an die vorhandene Menge angehängt. Die Elemente werden zufällig hinzugefügt, ohne eine bestimmte Reihenfolge einzuhalten.
klar()   Mit dieser Methode werden alle Elemente aus der Menge entfernt, die Menge jedoch nicht gelöscht. Die Referenz für den Satz existiert noch.
enthält(Element) Mit dieser Methode wird überprüft, ob ein bestimmtes Element im Set vorhanden ist oder nicht.
enthältAlle(Sammlung) 

Mit dieser Methode wird überprüft, ob die Menge alle in der angegebenen Sammlung vorhandenen Elemente enthält oder nicht.

Diese Methode gibt true zurück, wenn die Menge alle Elemente enthält, und false, wenn eines der Elemente fehlt.

gleich() Vergleicht das angegebene Objekt mit dieser Menge auf Gleichheit.
hashCode()  Diese Methode wird verwendet, um den HashCode-Wert für diese Instanz des Sets abzurufen. Es gibt einen ganzzahligen Wert zurück, der der HashCode-Wert für diese Instanz des Sets ist.
isEmpty() Mit dieser Methode wird überprüft, ob ein NavigableSet leer ist oder nicht.
(Element) entfernen Mit dieser Methode wird das angegebene Element aus der Menge entfernt. Diese Methode gibt „True“ zurück, wenn das angegebene Element im Set vorhanden ist, andernfalls gibt sie „False“ zurück.
RemoveAll(Sammlung) Mit dieser Methode werden alle im Set vorhandenen Elemente aus der Sammlung entfernt. Diese Methode gibt true zurück, wenn sich dieser Satz durch den Aufruf geändert hat.
keepAll(collection) Diese Methode wird verwendet, um alle Elemente aus der Menge beizubehalten, die in der angegebenen Sammlung erwähnt werden. Diese Methode gibt true zurück, wenn sich dieser Satz durch den Aufruf geändert hat.
Größe() Diese Methode wird verwendet, um die Größe des Satzes zu ermitteln. Dies gibt einen ganzzahligen Wert zurück, der die Anzahl der Elemente angibt.
toArray() Diese Methode wird verwendet, um ein Array mit denselben Elementen wie das Set zu bilden.
 toArray(T[] a)Gibt ein Array zurück, das alle Elemente in dieser Menge enthält; Der Laufzeittyp des zurückgegebenen Arrays ist der des angegebenen Arrays.

In der Schnittstelle java.util.Collection deklarierte Methoden

VerfahrenBeschreibung
parallelStream()Gibt einen möglicherweise parallelen Stream mit dieser Sammlung als Quelle zurück.
removeIf(PrädikatFilter)Entfernt alle Elemente dieser Sammlung, die das angegebene Prädikat erfüllen.
Strom()Gibt einen sequentiellen Stream mit dieser Sammlung als Quelle zurück.
toArray?(IntFunctionGenerator)Gibt ein Array zurück, das alle Elemente in dieser Sammlung enthält, wobei die bereitgestellte Generatorfunktion verwendet wird, um das zurückgegebene Array zuzuordnen.

In der Schnittstelle java.lang.Iterable deklarierte Methoden

VerfahrenBeschreibung
forEach(ConsumerAktion) Führt die angegebene Aktion für jedes Element des Iterable aus, bis alle Elemente verarbeitet wurden oder die Aktion eine Ausnahme auslöst.