Dominando la Interfaz NavigableSet de Java: Navegación, Ordenación y Ejemplos Prácticos
Interfaz NavigableSet de Java
En este tutorial, aprenderemos sobre la interfaz NavigableSet de Java y sus métodos con la ayuda de un ejemplo.
La interfaz NavigableSet del framework de colecciones de Java proporciona características para navegar entre los elementos del conjunto.
Se considera un tipo de SortedSet.
Clase que Implementa NavigableSet
Para usar las funcionalidades de la interfaz NavigableSet, necesitamos usar la clase TreeSet que implementa NavigableSet.
Cómo Usar NavigableSet
En Java, debemos importar el paquete java.util.NavigableSet para usar NavigableSet. Una vez importado el paquete, así es como podemos crear conjuntos navegables.
// Implementación de SortedSet por la clase TreeSet
NavigableSet<String> numeros = new TreeSet<>();
Aquí, hemos creado un conjunto navegable llamado numeros de la clase TreeSet.
Métodos de NavigableSet
El NavigableSet se considera un tipo de SortedSet. Es porque NavigableSet extiende la interfaz SortedSet.
Por lo tanto, todos los métodos de SortedSet también están disponibles en NavigableSet. Para aprender cómo funcionan estos métodos, visita Java SortedSet.
Sin embargo, algunos métodos de SortedSet (headSet(), tailSet() y subSet()) se definen de manera diferente en NavigableSet.
headSet(elemento, valorBooleano)
El método headSet() retorna todos los elementos de un conjunto navegable antes del elemento especificado (que se pasa como argumento).
El parámetro valorBooleano es opcional. Su valor por defecto es false.
Si se pasa true como valorBooleano, el método retorna todos los elementos antes del elemento especificado incluyendo el elemento especificado.
tailSet(elemento, valorBooleano)
El método tailSet() retorna todos los elementos de un conjunto navegable después del elemento especificado (que se pasa como argumento) incluyendo el elemento especificado.
El parámetro valorBooleano es opcional. Su valor por defecto es true.
Si se pasa false como valorBooleano, el método retorna todos los elementos después del elemento especificado sin incluir el elemento especificado.
subSet(e1, bv1, e2, bv2)
El método subSet() retorna todos los elementos entre e1 y e2 incluyendo e1.
Los parámetros bv1 y bv2 son opcionales. El valor por defecto de bv1 es true, y el valor por defecto de bv2 es false.
Si se pasa false como bv1, el método retorna todos los elementos entre e1 y e2 sin incluir e1.
Si se pasa true como bv2, el método retorna todos los elementos entre e1 y e2, incluyendo e1.
Métodos para Navegación
El NavigableSet proporciona varios métodos que se pueden usar para navegar sobre sus elementos.
- descendingSet() – invierte el orden de los elementos en un conjunto
- descendingIterator() – retorna un iterador que se puede usar para iterar sobre un conjunto en orden inverso
- ceiling() – retorna el elemento más bajo entre aquellos que son mayores o iguales al elemento especificado
- floor() – retorna el elemento más grande entre aquellos que son menores o iguales al elemento especificado
- higher() – retorna el elemento más bajo entre aquellos que son mayores que el elemento especificado
- lower() – retorna el elemento más grande entre aquellos que son menores que el elemento especificado
- pollFirst() – retorna y elimina el primer elemento del conjunto
- pollLast() – retorna y elimina el último elemento del conjunto
Para aprender más sobre NavigableSet, visita la documentación oficial de Java NavigableSet.
Implementación de NavigableSet en la Clase TreeSet
import java.util.NavigableSet;
import java.util.TreeSet;
class Main {
public static void main(String[] args) {
// Crear NavigableSet usando TreeSet
NavigableSet<Integer> numeros = new TreeSet<>();
// Insertar elementos al conjunto
numeros.add(1);
numeros.add(2);
numeros.add(3);
System.out.println("NavigableSet: " + numeros);
// Acceder al primer elemento
int primerElemento = numeros.first();
System.out.println("Primer Número: " + primerElemento);
// Acceder al último elemento
int ultimoElemento = numeros.last();
System.out.println("Último Elemento: " + ultimoElemento);
// Eliminar el primer elemento
int numero1 = numeros.pollFirst();
System.out.println("Primer Elemento Eliminado: " + numero1);
// Eliminar el último elemento
int numero2 = numeros.pollLast();
System.out.println("Último Elemento Eliminado: " + numero2);
}
}
Salida
NavigableSet: [1, 2, 3] Primer Elemento: 1 Último Elemento: 3 Primer Elemento Eliminado: 1 Último Elemento Eliminado: 3
Para aprender más sobre TreeSet, visita Java TreeSet.
Ahora que conocemos la interfaz NavigableSet, aprenderemos sobre su implementación usando la clase TreeSet.
Java
- Dominando las Interfaces en C#: Definición, Implementación y Casos de Uso Prácticos
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Comentarios en Java: Tipos, Uso y Mejores Prácticas
- Dominar if…else en Java: Control de Flujo Explicado
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Dominando Expresiones Lambda en Java: Desde Básicos hasta Stream API
- Interfaz vs Clase Abstracta en Java: Cómo elegir la abstracción correcta
- Entendiendo las Interfaces en Java: Definiciones, Usos y Buenas Prácticas
- Java 9 Métodos Privados en Interfaces: Mejorar Encapsulamiento y Reutilización de Código