Qual é a diferença entre HashMap e LinkedHashMap

Índice:

Anonim

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.

Qual é a diferença entre HashMap e LinkedHashMap