Diferença entre HashMap e TreeMap em Java
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.
- Gráfico de comparação
- Definição
- Principais diferenças
- Conclusão
Gráfico de comparação
Base para Comparação | HashMap | TreeMap |
---|---|---|
Basic | O HashMap não mantém a ordem de inserção. | O TreeMap mantém a ordem de inserção. |
Estrutura de dados | O 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 Implementa | O HashMap estende a classe AbstractMap e implementa a interface Map. | O TreeMap estende a classe AbstractMap e implementa a interface SortedMap e NavigableMap. |
atuação | HashMap 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 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. 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.
Conclusão: