Diferença entre HashMap e TreeMap em Java

Autor: Laura McKinney
Data De Criação: 2 Abril 2021
Data De Atualização: 5 Poderia 2024
Anonim
Diferença entre HashMap e TreeMap em Java - Tecnologia
Diferença entre HashMap e TreeMap em Java - Tecnologia

Contente


HashMap e TreeMap são as classes Map e ambos implementam a interface Map. Mapa é um objeto que armazena pares de valores-chave, onde cada chave é única e, porém, pode haver valores duplicados. A classe HashMap usa a tabela de hash como uma estrutura de dados. O TreeMap usa a árvore vermelho-preta como uma estrutura de dados. A principal diferença entre o HashMap e o Treemap é que o HashMap não preserva a ordem de inserção, enquanto que o Treemap faz.

Então, vamos começar nossa discussão sobre as diferenças entre o HashMap e o TreeMap com a ajuda do gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoHashMapTreeMap
Basic O HashMap não mantém a ordem de inserção.O TreeMap mantém a ordem de inserção.
Estrutura de dadosO HashMap usa a tabela de hash como uma estrutura de dados subjacente.O TreeMap usa a Árvore Vermelho-Preto como uma estrutura de dados subjacente.
Chaves e valores nulos O HashMap permite que a chave nula uma vez que o valor nulo do anúncio seja qualquer quantidade de tempo.O TreeMap não permite chave nula, mas permite valores nulos qualquer quantidade de tempo.
Estende e ImplementaO HashMap estende a classe AbstractMap e implementa a interface Map.O TreeMap estende a classe AbstractMap e implementa a interface SortedMap e NavigableMap.
atuaçãoHashMap opera mais rápido.O TreeMap em comparação com o HashMap opera mais devagar.


Definição de HashMap

HashMap é uma classe de mapa. Ele usa o tabela de hash, como uma estrutura de dados para armazenar o par de valores-chave dos mapas. A inserção do par de valores-chave é feita usando o código hash do chaves. Portanto, cada chave no mapa deve ser única, pois será usada para recuperar os valores.

A ordem de inserção no HashMap é não preservado, o que significa que o objeto hashmap não retorna os elementos na ordem em que foram inseridos. Por outro lado, a ordem na qual os elementos serão retornados não é fixa.

o chave é permitido ser NULO de uma vez, mas a valores pode ser NULO a qualquer momento. O HashMap pode conter o heterogêneo objetos para chaves, bem como valores.


Existem quatro construtores do HashMap:

HashMap () HashMap (Mapa m) HashMap (capacidade int), HashMap (capacidade int, float fillRatio)

o primeiro O construtor cria o objeto vazio do HashMap. o segundo O construtor inicializa o HashMap usando elementos do Mapa m. o terceiro O construtor inicializa o HashMap com a capacidade fornecida no argumento. o quarto O construtor inicializa a capacidade e a taxa de preenchimento do objeto HashMap.

O padrão capacidade do HashMap é 16e o padrão proporção de preenchimento do HashMap é 0.75.

Definição de TreeMap

Como o HashMap, TreeMap também é uma classe de mapa. O TreeMap se estende AbstractMap classe e implementos NavigabelMap e SortedMap. Os objetos TreeMap armazenam os elementos do mapa na estrutura em árvore. A estrutura de dados usada para armazenar o mapa é a Árvore vermelho-preta.

O TreeMap armazena o par de valores-chave na ordem classificada, o que ajuda na recuperação rápida dos elementos. O objeto TreeMap retorna os elementos no ordenado (ascendente) ordem.

Existem quatro construtores do TreeMap:

TreeMap () TreeMap (Comparador <? Super K> comp) TreeMap (Mapa <? Estende K,? Estende V> m) TreeMap (SortedMap sm)

o primeiro Os construtores criam um objeto vazio do TreeMap que seria classificado em ordem natural por suas chaves. o segundo O construtor criará um mapa de árvore vazio que será classificado pelo Comparador cmp. o terceiro O construtor acima criará um mapa de árvore que será inicializado usando entradas de Mapa m. o quarto O construtor criará um mapa da árvore que será inicializado usando as entradas de SortedMap sm.

O Treemap não possui nenhum método novo, ele usa o método da interface NavigableMap e SortedMap e a classe AbstractMap.

  1. Ambas as classes são usadas para criar objetos de mapa, mas a diferença básica entre o HashMap e o Treemap é que o HashMap não mantém a ordem de inserção, enquanto o Treemap mantém.
  2. A estrutura de dados usada pelo Hashmap para armazenar elementos do mapa é a tabela de hash e a estrutura de dados usada pelo TreeMap para armazenar os elementos do mapa é a árvore vermelha e preta.
  3. As classes Hashmap e Treemap estendem a classe AbstractMap, mas a classe HashMap implementa a interface Map e o TreeMap implementa a interface NavigableMap e SortedMap.
  4. Os valores podem ser Nulos qualquer número de vezes em ambos, mas a chave pode ser Nula apenas uma vez no HashMap e uma chave nunca pode estar no Mapa de Árvore.
  5. O desempenho do HashMap é mais rápido, não perde tempo classificando os elementos do mapa como o TreeMap. Portanto, o TreeMap é mais lento que o HashMap.

Conclusão:

O TreeMap deve ser usado apenas quando você precisar de um par de valores-chave na forma classificada. Como a classificação inclui o custo do desempenho. O HashMap não sincronizado opera mais rapidamente.