Sobes.tech
Junior — Middle

Qual é a diferença de comportamento e características entre HashMap e LinkedHashMap em Java?

sobes.tech IA

Resposta da IA

HashMap e LinkedHashMap em Java diferem da seguinte forma:

  • HashMap armazena pares chave-valor sem garantia de ordem. A ordem dos elementos pode mudar ao adicionar ou remover.

  • LinkedHashMap estende HashMap e mantém a ordem de inserção dos elementos. Isso significa que ao iterar, os elementos serão retornados na ordem em que foram adicionados.

Características:

  • LinkedHashMap é um pouco mais lento devido ao suporte de uma lista ligada para a ordem.
  • LinkedHashMap pode ser usado para implementar caches com remoção na ordem de acesso.

Exemplo:

Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("one", 1);
hashMap.put("two", 2);
hashMap.put("three", 3);

Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("one", 1);
linkedHashMap.put("two", 2);
linkedHashMap.put("three", 3);

System.out.println("HashMap: " + hashMap.keySet());
System.out.println("LinkedHashMap: " + linkedHashMap.keySet());

Saída:

HashMap: [two, one, three]
LinkedHashMap: [one, two, three]

Portanto, se a ordem dos elementos for importante, deve-se usar o LinkedHashMap.