Java NavigableSet interface: Navigatie, sortering en praktische voorbeelden
Java NavigableSet Interface
In deze tutorial leer je over de Java NavigableSet-interface en zijn methoden met behulp van een voorbeeld.
De NavigableSet-interface van het Java Collections Framework biedt functionaliteit om te navigeren tussen de elementen van een set. Het wordt beschouwd als een type SortedSet.
Klasse die NavigableSet implementeert
Om de functionaliteiten van de NavigableSet-interface te gebruiken, moeten we de TreeSet-klasse gebruiken die NavigableSet implementeert.
Hoe NavigableSet te gebruiken
In Java moeten we het java.util.NavigableSet-pakket importeren om NavigableSet te gebruiken. Zodra we het pakket geïmporteerd hebben, kunnen we navigable sets als volgt creëren:
// SortedSet-implementatie door TreeSet-klasse
NavigableSet<String> getallen = new TreeSet<>();
Hier hebben we een navigable set genaamd getallen van de TreeSet-klasse aangemaakt.
Methoden van NavigableSet
De NavigableSet wordt beschouwd als een type SortedSet, omdat NavigableSet de SortedSet-interface uitbreidt. Daarom zijn alle SortedSet-methoden ook beschikbaar in NavigableSet. Sommige methoden van SortedSet (headSet(), tailSet() en subSet()) zijn echter anders gedefinieerd in NavigableSet.
headSet(element, booleanValue)
De headSet()-methode retourneert alle elementen van een navigable set vóór het gespecificeerde element (dat als argument wordt doorgegeven). De booleanValue-parameter is optioneel; de standaardwaarde is false. Als true wordt doorgegeven, retourneert de methode alle elementen vóór het gespecificeerde element, inclusief dat element.
tailSet(element, booleanValue)
De tailSet()-methode retourneert alle elementen van een navigable set ná het gespecificeerde element, inclusief dat element. De booleanValue-parameter is optioneel; de standaardwaarde is true. Als false wordt doorgegeven, retourneert de methode alle elementen ná het gespecificeerde element, zonder dat element te includeren.
subSet(e1, bv1, e2, bv2)
De subSet()-methode retourneert alle elementen tussen e1 en e2, inclusief e1. De bv1 en bv2 zijn optionele parameters. De standaardwaarde van bv1 is true, en de standaardwaarde van bv2 is false. Als false wordt doorgegeven als bv1, worden elementen tussen e1 en e2 teruggegeven zonder e1 te includeren. Als true wordt doorgegeven als bv2, worden elementen tussen e1 en e2 teruggegeven, inclusief e2.
Navigatiemethoden
De NavigableSet biedt verschillende methoden om over zijn elementen te navigeren:
- descendingSet() – keert de volgorde van elementen in een set om
- descendingIterator() – retourneert een iterator om over een set in omgekeerde volgorde te itereren
- ceiling() – retourneert het laagste element dat groter dan of gelijk is aan het gespecificeerde element
- floor() – retourneert het grootste element dat kleiner dan of gelijk is aan het gespecificeerde element
- higher() – retourneert het laagste element dat strikt groter is dan het gespecificeerde element
- lower() – retourneert het grootste element dat strikt kleiner is dan het gespecificeerde element
- pollFirst() – retourneert en verwijdert het eerste element uit de set
- pollLast() – retourneert en verwijdert het laatste element uit de set
Implementatie van NavigableSet in TreeSet-klasse
import java.util.NavigableSet;
import java.util.TreeSet;
class Main {
public static void main(String[] args) {
// NavigableSet aanmaken met TreeSet
NavigableSet<Integer> getallen = new TreeSet<>();
// Elementen toevoegen
getallen.add(1);
getallen.add(2);
getallen.add(3);
System.out.println("NavigableSet: " + getallen);
// Toegang tot eerste en laatste element
int eersteElement = getallen.first();
System.out.println("Eerste getal: " + eersteElement);
int laatsteElement = getallen.last();
System.out.println("Laatste element: " + laatsteElement);
// Eerste en laatste element verwijderen
int getal1 = getallen.pollFirst();
System.out.println("Verwijderd eerste element: " + getal1);
int getal2 = getallen.pollLast();
System.out.println("Verwijderd laatste element: " + getal2);
}
}
Output
NavigableSet: [1, 2, 3] Eerste element: 1 Laatste element: 3 Verwijderd eerste element: 1 Verwijderd laatste element: 3
Meer over TreeSet vind je in de officiële Java-documentatie.
Java
- C#-interfaces onder de knie: definitie, implementatie en praktische use cases
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java if…else beheersen: control flow uitgelegd
- Java interfaces meesteren: concepten, implementatie en best practices
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Lambda-expressies: Van basis tot Stream API
- Interface vs Abstracte Klasse in Java: De Juiste Abstractie Kiezen
- Java Interfaces begrijpen: Definities, Gebruik en Best Practices
- Java 9 Private Interface Methods: Encapsulatie & herbruik verbeteren