Junior
Como é que o armazenamento de objetos é realizado no HashMap?
sobes.tech IA
Resposta da IA
Os objetos são armazenados como pares "chave-valor". HashMap usa um array de "baldes" (buckets). Ao adicionar um par:
- O código hash da chave é calculado usando
hashCode(). - Usando o código hash, o índice do balde no array é determinado.
- Nesse balde, é colocado um par
Entry(ou equivalente em versões mais recentes do Java), contendo a chave, o valor e o código hash. - Se já houver objetos no balde, eles formam uma lista ligada ou uma árvore (em caso de muitas colisões).
Ao obter um objeto pela chave:
- O código hash da chave é calculado.
- O índice do balde é determinado.
- Dentro do balde, procura-se um objeto com uma chave para a qual
equals()retornatruee cujo código hash coincide.
As chaves devem ser imutáveis e ter métodos hashCode() e equals() corretamente implementados.