Uma breve introdução ao TreeMap em Java com exemplos



Este artigo fornecerá a você um conhecimento detalhado e abrangente de TreeMap em Java com exemplos de métodos e construtores.

Implementar uma interface de mapa em Java é uma tarefa muito importante. Para este propósito, temos TreeMap e HashMap . Neste artigo, nosso foco será no TreeMap em na seguinte ordem:

O que é um TreeMap em Java?

Um TreeMap em Java é usado para implementar a interface Map e NavigableMap junto com a classe abstrata. O mapa é classificado de acordo com a ordem natural de suas chaves ou por um Comparador fornecido no momento da criação do mapa, dependendo de qual construtor é usado. Isso prova ser uma maneira eficiente de classificar e armazenar os pares de valores-chave.





TreeMap-in-JavaA ordem de armazenamento mantida pelo mapa de árvore deve ser consistente com iguais, como qualquer outro mapa classificado, independentemente dos comparadores explícitos. O mapa da árvorea implementação não é sincronizada no sentido de que se um mapa for acessado por vários encadeamentos, simultaneamente e pelo menos um dos encadeamentos modifica o mapa estruturalmente, ele deve ser sincronizado externamente.

Características do TreeMaps

  • Esta classe é membro do Java Collections Framework.



    sal vs chef vs fantoche
  • A classe implementa interfaces Map incluindo NavigableMap, SortedMap e estende AbstractMap

  • TreeMap em Java não permite chaves nulas (como Map) e, portanto, uma NullPointerException é lançada. No entanto, vários valores nulos podem ser associados a chaves diferentes.

  • Todos os pares Map.Entry retornados por métodos nesta classe e suas visualizações representam instantâneos de mapeamentos no momento em que foram produzidos.



  • Eles não oferecem suporte ao método Entry.setValue.

Pontos importantes para lembrar

  1. Além de implementar a interface Map, Java TreeMap também implementa NavigableMap e indiretamente implementa a interface SortedMap. TreeMap também estende a classe AbstractMap.

  2. As entradas de TreeMap são classificadas na ordem natural de suas chaves. Ele também fornece um construtor para fornecer o Comparador a ser usado no pedido. Portanto, se você estiver usando qualquer classe como chave, certifique-se de implementar a interface Comparable para ordenação natural. Confira as perguntas da entrevista das coleções java para entender a importância desses métodos.

  3. A implementação do Java TreeMap fornece custo de tempo log (n) garantido para as operações containsKey, get, put e remove.

  4. TreeMap não é sincronizado e, portanto, não seguro para thread. Para ambientes multithread, você pode obter um empacotado sincronizado usando o método Collections.synchronizedSortedMap.

  5. Os métodos TreeMap para obter o conjunto de chaves e os valores retornam o Iterator de natureza rápida para falhas, portanto, qualquer modificação simultânea lançará ConcurrentModificationException.

  6. TreeMap em java não permite chaves nulas, no entanto, você pode ter vários valores nulos associados a chaves diferentes.

Construtores em TreeMap

Construtor Descrição
TreeMap () Constrói um mapa de árvore vazio que será classificado usando a ordem natural de suas chaves.
TreeMap (comp comparador) Constrói um mapa baseado em árvore vazio que será classificado usando o Comparator comp.
TreeMap (mapa m) Inicializa um mapa de árvore com as entradas de m, que serão classificadas usando a ordem natural das chaves.
TreeMap (SortedMap sm) Inicializa um mapa de árvore com as entradas do SortedMap sm, que serão classificadas na mesma ordem que sm.

Métodos em TreeMap

Método Descrição
void clear () Remove todos os mapeamentos deste TreeMap.
Clone de objeto () Retorna uma cópia superficial desta instância TreeMap.
Comparador comparador () Retorna o comparador usado para ordenar este mapa, ou null se este mapa usa a ordem natural de suas chaves.
boolean containsKey (chave do objeto) Retorna verdadeiro se este mapa contém um mapeamento para a chave especificada.
boolean containsValue (valor do objeto) Retorna verdadeiro se este mapa mapeia uma ou mais chaves para o valor especificado.
Definir entrySet () Retorna uma visualização definida dos mapeamentos contidos neste mapa.
Objeto firstKey () Retorna a primeira chave (mais baixa) atualmente neste mapa classificado.
Object get (Object key) Retorna o valor para o qual este mapa mapeia a chave especificada.
SortedMap headMap (objeto toKey) Retorna uma visualização da parte deste mapa cujas chaves são estritamente menores que toKey.
Definir keySet () Retorna uma visualização Set das chaves contidas neste mapa.
Objeto lastKey () Retorna a última chave (mais alta) atualmente neste mapa classificado.
Object put (Object key, Object value) Associa o valor especificado à chave especificada neste mapa.
void putAll (mapa do mapa) Copia todos os mapeamentos do mapa especificado para este mapa.
Remover objeto (chave do objeto) Remove o mapeamento para esta chave deste TreeMap, se presente.
tamanho interno () Retorna o número de mapeamentos de valores-chave neste mapa.
SortedMap submap (Object fromKey, Object toKey) Retorna uma visualização da parte deste mapa cujas chaves variam de fromKey, inclusive, a toKey, exclusivo.
SortedMap tailMap (Object fromKey) Retorna uma visualização da parte deste mapa cujas chaves são maiores ou iguais a fromKey.
Valores de coleção () Retorna uma visualização de coleção dos valores contidos neste mapa.

Exemplo de TreeMap em Java

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// TreeMap com País como chave e capital como valor // TreeMap armazena elementos na ordem natural das chaves. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('Índia', 'Delhi') countryCapitalMap.put ('Japão', 'Tóquio') countryCapitalMap.put ('França', 'Paris') countryCapitalMap.put ('Rússia' , 'Moscow') System.out.println ('-----------------------------') // Iterando TreeMap usando keySet ( ) e para cada loop System.out.println ('Iterando TreeMap usando keySet () e para cada loop') para (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' e Capital: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Resultado:

Com isso, chegamos ao fim deste artigo TreeMap em Java. C que diabo pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi elaborado para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “TreeMap in Java” e entraremos em contato com você o mais breve possível.