English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceção Java

Java Lista (List)

Java Queue (fila)

conjunto Java Map

conjunto Java Set

Java Entrada e Saída (I/O)

Reader Java/Writer

Outros tópicos do Java

Interface Java NavigableMap

Neste tutorial, vamos aprender o interface Java NavigableMap e seus métodos por meio de um exemplo.

O interface NavigableMap do Java Collection Framework fornece funcionalidades de navegação entre entradas de mapeamento.

Ele é consideradoSortedMapum tipo.

Classes que implementam NavigableMap

Como NavigableMap é um interface, não podemos criar objetos a partir dele.

Para usar as funcionalidades do interface NavigableMap, precisamos usar a classe TreeMap que implementa NavigableMap.

Como usar NavigableMap?

No Java, precisamos importar o pacote java.util.NavigableMap para usar NavigableMap. Após a importação do pacote, criaremos NavigableMap conforme a seguinte maneira.

// NavigableMap é implementado pela classe TreeMap.
NavigableMap<Key, Value> numbers = new TreeMap<>();

 No código acima, criamos um mapeamento navegável chamado numbers da classe TreeMap.

Aqui,

  • Key - Identificador único usado para associar cada elemento (valor) no mapeamento

  • Value - Elementos associados às chaves no mapa

Métodos do NavigableMap

NavigableMap é considerado um tipo de SortedMap. Isso porque NavigableMap herda a interface SortedMap.

Portanto, também é possível usar todos os métodos do SortedMap no NavigableMap. Para entender como definir esses métodos no SortedMap, acesseJava SortedMap.

No entanto, no NavigableMap, alguns métodos do SortedMap (headMap(), tailMap() e subMap()) têm definições diferentes.

Vamos ver como definir esses métodos NavigableMap

headMap(key,booleanValue)

O método headMap() retorna todos os itens associados às chaves antes da chave especificada (key), passada como parâmetro, todos os itens associados às chaves anteriores.

booleanValue é um parâmetro opcional. O valor padrão é false.

Se booleanValue for true, o método retornará todos os itens associados às chaves antes da chave especificada (key), incluindo os itens associados à chave especificada (key).

tailMap(key,booleanValue)

O método tailMap() retorna todos os itens associados às chaves após a chave especificada (key), passada como parâmetro, todos os itens associados às chaves posteriores, incluindo os itens associados à chave especificada (key).

booleanValue é um parâmetro opcional. O valor padrão é true.

Se booleanValue for false, o método retornará todos os itens associados às chaves após a chave especificada (key), exceto os itens associados à chave especificada (key).

subMap(k1,bv1,k2,bv2)

o método subMap() retorna com k1e k2Todos os itens associados às chaves, incluindo aqueles associados a k1itens relacionados.

bv1e bv2é um parâmetro opcional. bv1o valor padrão é true, bv2o valor padrão é false.

se bv1retorna com k1e k2Todos os itens associados às chaves, exceto aqueles associados a k1Entrada associada.

se bv2se bv for true, então este método retorna as entradas associadas com k1e k2Todas as entradas entre as chaves, incluindo aquelas associadas com k1Entrada associada.

Outros métodos

NavigableMap fornece várias métodos úteis para localizar entradas no mapeamento.

  • DescendingMap() - Inverter a ordem das entradas no map

  • DescendingKeyMap() - Inverter a ordem das chaves no map

  • ceilingEntry() - Retornar a entrada com a chave mínima de todas as entradas cujas chaves são maiores ou iguais à chave especificada

  • ceilingKey() - Retornar a chave mínima das chaves que são maiores ou iguais à chave especificada

  • floorEntry() - Retornar a entrada com a chave máxima de todas as entradas cujas chaves são menores ou iguais à chave especificada

  • floorKey() - Retornar a chave máxima das chaves que são menores ou iguais à chave especificada

  • HigherEntry() - Retornar a entrada com a chave mínima de todas as entradas cujas chaves são maiores que a chave especificada

  • HigherKey() - Retornar a chave mínima das chaves que são maiores que a chave especificada

  • lowerEntry() - Retornar a entrada com a chave máxima de todas as entradas cujas chaves são menores que a chave especificada

  • lowerKey() - Retornar a chave máxima das chaves que são menores que a chave especificada

  • firstEntry() - Retornar a primeira entrada do map (a entrada com a chave mínima)

  • lastEntry() - Retornar a última entrada do map (a entrada com a chave máxima)

  • pollFirstEntry() - Retornar e excluir a primeira entrada do map

  • pollLastEntry() - Retornar e excluir a última entrada do map

Implementação de NavigableMap na classe TreeMap

import java.util.NavigableMap;
import java.util.TreeMap;
class Main {
    public static void main(String[] args) {
        //Usar TreeMap para criar NavigableMap
        NavigableMap<String, Integer> numbers = new TreeMap<>();
        //Inserir elementos no map
        numbers.put("Two", 2);
        numbers.put("One", 1);
        numbers.put("Three", 3);
        System.out.println("NavigableMap: " ); + numbers);
        //Acessar o primeiro item do mapeamento
        System.out.println("Primeiro item: " ); + numbers.firstEntry());
        //Acessar o último item do mapa
        System.out.println("Último item: " + numbers.lastEntry());
        //Remover o primeiro item do mapeamento
        System.out.println("Remover o primeiro item: " + numbers.pollFirstEntry());
        //Remover o último item do mapa
        System.out.println("Remover o último item: " + numbers.pollLastEntry());
    }
}

Resultados de Saída

NavigableMap: {One=1, Three=3, Two=2}
Primeiro item: One=1
Último item: Two=2
Remover o primeiro item: One=1
Remover o último item: Two=2

Para obter mais informações sobre TreeMap, acesseJava TreeMap.

Agora que conhecemos o interface NavigableMap, usaremos a classe TreeMap no próximo tutorial para entender sua implementação.