Qual é a diferença entre HashMap e LinkedHashMap
Índice:
o principal diferença entre HashMap e LinkedHashMap é que HashMap não mantém a ordem de inserção de dados, enquanto LinkedHashMap mantém a ordem de inserção de dados.
O mapa é uma estrutura de dados comumente usada. Duas implementações de Map em Java Standard Edition são HashMap e LikedHashMap. HashMap é implementado como uma tabela hash. Não tem ordenação de chaves ou valores. Por outro lado, LinkedHashMap mantém a ordem de inserção dos dados.
Hashmap, Hash Table, LinkedHashMap, Map
O que é HashMap
HashMap é uma classe que implementa a interface Map usando uma tabela hash. Ele estende o AbstractMap e o AbstractMap implementa a interface Map. Um HashMap contém pares de valores-chave. Pode consistir em chaves exclusivas. O HashMap não está sincronizado e não mantém a ordem de inserção dos dados. Um exemplo de programa com HashMap é o seguinte.
Figura 1: Programa com HashMap
No programa acima, os ‘funcionários’ são um objeto do HashMap. Ele pode armazenar vários itens com chave do tipo inteiro e valor do tipo String. O método put permite inserir itens no HashMap. O loop for com o Map.Entry é usado para iterar por todos os itens em ‘funcionários’. O método getKey exibe as chaves enquanto o método getValues imprime os valores correspondentes a essas chaves.
O HashMap não imprime os elementos de acordo com a ordem inserida. Além disso, embora existam dois registros com os mesmos detalhes, apenas imprime um deles. Isso ocorre porque o HashMap contém apenas chaves exclusivas.
O que é LinkedHashMap
A classe LinkedHashMap é uma implementação de Hashtable e Linked list da interface Map. Tem uma ordem de iteração previsível. Ele herda a classe HashMap e implementa a interface Map. LinkedHashMap também possui pares de valores-chave e contém apenas elementos exclusivos. Mas, não está sincronizado.
Um exemplo é o seguinte:
Figura 2: Programa com LinkedHashMap
No programa acima, os 'funcionários' são um objeto de LinkedHashMap. Ele pode armazenar vários itens com chave do tipo inteiro e valor do tipo String. O método put permite inserir itens no LinkedHashMap. O loop for com o Map.Entry ajuda a iterar por todos os itens em ‘funcionários’. O método getKey exibe as chaves enquanto o método getValues imprime os valores correspondentes a essas chaves.
LinkedHashMap imprime os elementos de acordo com o pedido inserido. Além disso, existem dois registros com os mesmos detalhes, mas apenas imprime um deles. Isso ocorre porque LinkedHashMap contém apenas chaves exclusivas.
Diferença entre HashMap e LinkedHashMap
Definição
HashMap é uma classe que ajuda a criar uma coleção que herda a classe AbstractMap e implementa a interface Map, enquanto LinkedHashMap é uma classe que é uma implementação de Hashtable e Linked List da interface Map com ordem de iteração previsível. Portanto, esta é a principal diferença entre HashMap e LinkedHashMap.
Ordem de Inserção
Além disso, outra diferença entre HashMap e LinkedHashMap é que o HashMap não mantém a ordem de inserção de dados, enquanto LinkedHashMap mantém a ordem de inserção de dados.
Associação com a interface de coleção
Conclusão
HashMap e LinkedHashMap são duas implementações da interface Map. A principal diferença entre HashMap e LinkedHashMap é que o HashMap não mantém a ordem de inserção de dados, enquanto LinkedHashMap mantém a ordem de inserção de dados.
Referência:
1. “HashMap em Java - Javatpoint.” Www.javatpoint.com, disponível aqui.2. “LinkedHashMap in Java - Javatpoint.” Www.javatpoint.com, disponível aqui.