Neste tutorial, aprenderemos sobre a interface Java NavigableMap e seus métodos com a ajuda de um exemplo.
A NavigableMap
interface da estrutura de coleções Java fornece os recursos para navegar entre as entradas do mapa.
É considerado um tipo de SortedMap.
Classe que implementa NavigableMap
Por NavigableMap
ser uma interface, não podemos criar objetos a partir dela.
Para usar as funcionalidades da NavigableMap
interface, precisamos usar a TreeMap
classe que implementa NavigableMap
.
Como usar o NavigableMap?
Em Java, devemos importar o java.util.NavigableMap
pacote a ser usado NavigableMap
. Depois de importar o pacote, veja como podemos criar um mapa navegável.
// NavigableMap implementation by TreeMap class NavigableMap numbers = new TreeMap();
No código acima, criamos um mapa navegável denominado números da TreeMap
classe.
Aqui,
- Chave - um identificador único usado para associar cada elemento (valor) em um mapa
- Valor - elementos associados por chaves em um mapa
Métodos de NavigableMap
O NavigableMap
é considerado um tipo de SortedMap
. É porque NavigableMap
estende a SortedMap
interface.
Portanto, todos os SortedMap
métodos também estão disponíveis em NavigableMap
. Para saber como esses métodos são definidos em SortedMap
, visite Java SortedMap.
No entanto, alguns dos métodos de SortedMap
( headMap()
, tailMap()
, e subMap()
) são definidas de forma diferente em NavigableMap
.
Vamos ver como esses métodos são definidos em NavigableMap
.
headMap (chave, booleanValue)
O headMap()
método retorna todas as entradas de um mapa navegável associado a todas essas chaves antes da chave especificada (que é passada como um argumento).
O booleanValue é um parâmetro opcional. Seu valor padrão é false
.
Se true
for passado como um valor booleano, o método retorna todas as entradas associadas a todas essas chaves antes da chave especificada, incluindo a entrada associada à chave especificada.
tailMap (chave, booleanValue)
O tailMap()
método retorna todas as entradas de um mapa navegável associado a todas essas chaves após a chave especificada (que é passada como um argumento) incluindo a entrada associada à chave especificada.
O booleanValue é um parâmetro opcional. Seu valor padrão é true
.
Se false
for passado como um valor booleano, o método retorna todas as entradas associadas a essas chaves após a chave especificada, sem incluir a entrada associada à chave especificada.
submapa (k1, bv1, k2, bv2)
O subMap()
método retorna todas as entradas associadas às chaves entre k1 e k2, incluindo a entrada associada a k1.
O bv1 e bv2 são parâmetros opcionais. O valor padrão de bv1 é verdadeiro e o valor padrão de bv2 é false
.
Se false
for passado como bv1, o método retorna todas as entradas associadas às chaves entre k1 e k2, sem incluir a entrada associada a k1.
Se true
for passado como bv2, o método retorna todas as entradas associadas às chaves entre k1 e k2, incluindo a entrada associada a k1.
Outros métodos
O NavigableMap
fornece vários métodos que podem ser usados para localizar as entradas de mapas.
- descendingMap () - inverte a ordem das entradas em um mapa
- descendingKeyMap () - inverte a ordem das chaves em um mapa
- tetoEntry () - retorna uma entrada com a chave mais baixa entre todas as entradas cujas chaves são maiores ou iguais à chave especificada
- tetoKey () - retorna a chave mais baixa entre as chaves que são maiores ou iguais à chave especificada
- floorEntry () - retorna uma entrada com a chave mais alta entre todas as entradas cujas chaves são menores ou iguais à chave especificada
- floorKey () - retorna a chave mais alta entre as chaves que são menores ou iguais à chave especificada
- higherEntry () - retorna uma entrada com a chave mais baixa entre todas as entradas cujas chaves são maiores que a chave especificada
- higherKey () - retorna a chave mais baixa entre as chaves que são maiores que a chave especificada
- lowerEntry () - retorna uma entrada com a chave mais alta entre todas aquelas entradas cujas chaves são menores que a chave especificada
- lowerKey () - retorna a chave mais alta entre as chaves que são menores que a chave especificada
- firstEntry () - retorna a primeira entrada (a entrada com a chave mais baixa) do mapa
- lastEntry () - retorna a última entrada (a entrada com a chave mais alta) do mapa
- pollFirstEntry () - retorna e remove a primeira entrada do mapa
- pollLastEntry () - retorna e remove a última entrada do mapa
Para saber mais, visite Java NavigableMap (documentação oficial do Java).
Implementação de NavigableMap na classe TreeMap
import java.util.NavigableMap; import java.util.TreeMap; class Main ( public static void main(String() args) ( // Creating NavigableMap using TreeMap NavigableMap 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()); ) )
Resultado
NavigableMap: (One = 1, Three = 3, Two = 2) Primeira entrada: Um = 1 Última entrada: Dois = 2 Removido Primeira entrada: Um = 1 Removido Última entrada: Dois = 2
Para saber mais sobre TreeMap
, visite Java TreeMap.
Agora que sabemos sobre a NavigableMap
interface, aprenderemos sobre sua implementação usando a TreeMap
classe em detalhes no próximo tutorial.