Sobes.tech
Junior — Middle

Pode explicar a estrutura interna e o funcionamento do HashMap na linguagem Java?

sobes.tech IA

Resposta da IA

HashMap em Java é uma estrutura de dados para armazenar pares de chave-valor com acesso rápido através da chave.

Estrutura interna:

  • HashMap usa um array de baldes (bucket array).
  • Para a chave, é calculado um código hash (hashCode), que é então convertido em um índice do array.
  • Em cada balde, armazenam-se elementos com o mesmo índice, geralmente na forma de uma lista ligada ou árvore (com Java 8, se houver muitas colisões).

Funcionamento:

  • Ao inserir um objeto, o índice é calculado pelo hash da chave.
  • Se o balde estiver vazio, o elemento é colocado lá.
  • Se o balde estiver ocupado, verifica-se a igualdade das chaves (equals) para atualizar o valor ou adicionar um novo elemento.
  • Para procurar por uma chave, também se calcula o índice e percorrem-se os elementos no balde para encontrar a correspondência.

Exemplo:

HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5

Assim, o HashMap garante um tempo de acesso amortizado de O(1), mas com muitas colisões pode degradar para O(n).