Sobes.tech
Junior — Middle

Explique o que significa uma colisão de chaves na estrutura de dados HashMap e como ela lida com isso.

sobes.tech IA

Resposta da IA

A colisão de chaves (hash collision) em HashMap ocorre quando duas chaves diferentes produzem o mesmo valor de índice ao calcular a função hash.

Como o HashMap lida com isso:

  • Em Java, o HashMap usa cadeias (listas ligadas ou árvores balanceadas) para armazenar vários elementos que caem na mesma cubeta.
  • Ao adicionar um novo elemento com uma chave cujo hash coincide com um existente, o novo elemento é adicionado à cadeia dessa cubeta.
  • Ao procurar uma chave, o HashMap percorre os elementos na cadeia, comparando as chaves usando equals() para encontrar a correta.

Desde o Java 8, se a cadeia ficar muito longa, ela é transformada em uma árvore balanceada (TreeNode), o que melhora o desempenho da busca de O(n) para O(log n).