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).