Interfaz Java NavigableMap
Interfaz de mapa navegable de Java
En este tutorial, aprenderemos sobre la interfaz Java NavigableMap y sus métodos con la ayuda de un ejemplo.
El NavigableMap
La interfaz del marco de colecciones de Java proporciona las características para navegar entre las entradas del mapa.
Se considera como un tipo de SortedMap.
Clase que implementa NavigableMap
Desde NavigableMap
es una interfaz, no podemos crear objetos a partir de ella.
Para utilizar las funcionalidades del NavigableMap
interfaz, necesitamos usar el TreeMap
clase que implementa NavigableMap
.
¿Cómo usar NavigableMap?
En Java, debemos importar el java.util.NavigableMap
paquete para usar NavigableMap
. Una vez que importamos el paquete, así es como podemos crear un mapa navegable.
// NavigableMap implementation by TreeMap class
NavigableMap<Key, Value> numbers = new TreeMap<>();
En el código anterior, hemos creado un mapa navegable llamado numbers de los TreeMap
clase.
Aquí,
- Clave - un identificador único utilizado para asociar cada elemento (valor) en un mapa
- Valor - elementos asociados por claves en un mapa
Métodos de NavigableMap
El NavigableMap
se considera como un tipo de SortedMap
. Es porque NavigableMap
extiende el SortedMap
interfaz.
Por lo tanto, todos los SortedMap
los métodos también están disponibles en NavigableMap
. Para saber cómo se definen estos métodos en SortedMap
, visite Java SortedMap.
Sin embargo, algunos de los métodos de SortedMap
(headMap()
, tailMap()
y subMap()
) se definen de manera diferente en NavigableMap
.
Veamos cómo se definen estos métodos en NavigableMap
.
headMap(clave, valor booleano)
El headMap()
El método devuelve todas las entradas de un mapa navegable asociado con todas esas claves antes de la clave especificada (que se pasa como argumento).
El valor booleano es un parámetro opcional. Su valor por defecto es false
.
Si true
se pasa como un booleanValue , el método devuelve todas las entradas asociadas con todas esas claves antes de la clave especificada , incluida la entrada asociada con la clave especificada .
tailMap(clave, valor booleano)
El tailMap()
El método devuelve todas las entradas de un mapa navegable asociado con todas esas claves después de la clave especificada (que se pasa como argumento) incluida la entrada asociada con la clave especificada .
El valor booleano es un parámetro opcional. Su valor por defecto es true
.
Si false
se pasa como un booleanValue , el método devuelve todas las entradas asociadas con esas claves después de la clave especificada , sin incluir la entrada asociada con la clave especificada .
submapa(k1, bv1, k2, bv2)
El subMap()
método devuelve todas las entradas asociadas con claves entre k1 y k2 incluyendo la entrada asociada con k1 .
El bv1 y bv2 son parámetros opcionales. El valor predeterminado de bv1 es verdadero y el valor predeterminado de bv2 es false
.
Si false
se pasa como bv1 , el método devuelve todas las entradas asociadas con claves entre k1 y k2 , sin incluir la entrada asociada a k1 .
Si true
se pasa como bv2 , el método devuelve todas las entradas asociadas con claves entre k1 y k2 , incluida la entrada asociada a k1 .
Otros métodos
El NavigableMap
proporciona varios métodos que se pueden utilizar para localizar las entradas de los mapas.
- mapadescendente() - invertir el orden de las entradas en un mapa
- descendingKeyMap() - invierte el orden de las claves en un mapa
- entrada de techo() - devuelve una entrada con la clave más baja entre todas aquellas entradas cuyas claves son mayores o iguales a la clave especificada
- clave de techo() - devuelve la clave más baja entre aquellas claves que son mayores o iguales a la clave especificada
- entrada de piso() - devuelve una entrada con la clave más alta entre todas aquellas entradas cuyas claves son menores o iguales a la clave especificada
- clave del piso() - devuelve la clave más alta entre aquellas claves que son menores o iguales a la clave especificada
- entrada superior() - devuelve una entrada con la clave más baja entre todas aquellas entradas cuyas claves son mayores que la clave especificada
- clave superior() - devuelve la clave más baja entre aquellas claves que son mayores que la clave especificada
- entrada inferior() - devuelve una entrada con la clave más alta entre todas aquellas entradas cuyas claves son menores que la clave especificada
- clave inferior() - devuelve la clave más alta entre aquellas claves que son menores que la clave especificada
- primera entrada() - devuelve la primera entrada (la entrada con la clave más baja) del mapa
- última entrada() - devuelve la última entrada (la entrada con la clave más alta) del mapa
- encuestaPrimeraEntrada() - devuelve y elimina la primera entrada del mapa
- encuestaÚltimaEntrada() - devuelve y elimina la última entrada del mapa
Para obtener más información, visite Java NavigableMap (documentación oficial de Java).
Implementación de NavigableMap en la clase TreeMap
import java.util.NavigableMap;
import java.util.TreeMap;
class Main {
public static void main(String[] args) {
// Creating NavigableMap using TreeMap
NavigableMap<String, Integer> numbers = new TreeMap<>();
// Insert elements to map
numbers.put("Two", 2);
numbers.put("One", 1);
numbers.put("Three", 3);
System.out.println("NavigableMap: " + numbers);
// Access the first entry of the map
System.out.println("First Entry: " + numbers.firstEntry());
// Access the last entry of the map
System.out.println("Last Entry: " + numbers.lastEntry());
// Remove the first entry from the map
System.out.println("Removed First Entry: " + numbers.pollFirstEntry());
// Remove the last entry from the map
System.out.println("Removed Last Entry: " + numbers.pollLastEntry());
}
}
Salida
NavigableMap: {One=1, Three=3, Two=2} First Entry: One=1 Last Entry: Two=2 Removed First Entry: One=1 Removed Last Entry: Two=2
Para obtener más información sobre TreeMap
, visite Java TreeMap.
Ahora conocemos el NavigableMap
interfaz, aprenderemos sobre su implementación usando el TreeMap
clase en detalle en el siguiente tutorial.
Java
- interfaz C#
- Operadores Java
- Java súper
- Interfaz Java
- Prueba de Java con recursos
- Interfaz Java NavigableSet
- Expresiones Java Lambda
- Interfaz vs clase abstracta en Java:¿cuál es la diferencia?
- Java - Interfaces
- Java 9 - Métodos de interfaz privada
- Iniciar sesión en Java:Sugerencias clave a tener en cuenta