Sobes.tech
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:

  1. O código hash da chave é calculado usando hashCode().
  2. Usando o código hash, o índice do balde no array é determinado.
  3. 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.
  4. 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:

  1. O código hash da chave é calculado.
  2. O índice do balde é determinado.
  3. Dentro do balde, procura-se um objeto com uma chave para a qual equals() retorna true e cujo código hash coincide.

As chaves devem ser imutáveis e ter métodos hashCode() e equals() corretamente implementados.