Junior — Middle
O que acontece quando duas chaves obtêm o mesmo código hash em um HashMap?
sobes.tech IA
Resposta da IA
Quando duas chaves num HashMap têm o mesmo código hash, ocorre uma colisão. O HashMap resolve esse problema colocando ambos os elementos na mesma balde (bucket). Dentro do balde, os elementos são armazenados em forma de lista ligada ou, a partir de uma certa versão do Java, em forma de árvore balanceada (TreeNode) para melhorar o desempenho.
Ao adicionar uma nova chave com o mesmo código hash, o HashMap percorre os elementos no balde e compara as chaves usando o método equals(). Se a chave já existir, o valor é atualizado; se não, um novo elemento é adicionado à estrutura dentro do balde.
Exemplo:
Map<String, String> map = new HashMap<>();
// Suponha que "Aa" e "BB" tenham o mesmo código hash
map.put("Aa", "Value1");
map.put("BB", "Value2");
// Ambas as chaves serão armazenadas no mesmo balde, mas como entradas diferentes