Junior — Middle
Como é que o armazenamento e o processamento de elementos com o mesmo código hash são realizados na estrutura de dados HashMap?
sobes.tech IA
Resposta da IA
No HashMap, os elementos com o mesmo código hash (colisões) são tratados usando cadeias (chaining) ou outros métodos de resolução de colisões. Na implementação clássica do Java HashMap, é usada uma lista ligada ou uma árvore (se muitos elementos tiverem o mesmo código hash).
Quando duas chaves têm o mesmo código hash, elas são colocadas numa "cesta" (bucket) única. Ao procurar ou inserir, percorre-se os elementos nesta cesta, comparando as chaves com o método equals() para encontrar o elemento desejado.
Exemplo simplificado:
int bucketIndex = hash(key) % table.length;
Node current = table[bucketIndex];
while (current != null) {
if (current.key.equals(key)) {
// elemento encontrado
break;
}
current = current.next;
}
// se não encontrado, adiciona-se um novo nó ao início da lista