Sobes.tech
Junior — Middle

Pode explicar como aceder a um elemento dentro de uma estrutura HashMap?

sobes.tech IA

Resposta da IA

Em Java, HashMap é implementado com base numa matriz de buckets, cada um contendo uma lista ligada ou uma árvore (a partir do Java 8) de elementos com o mesmo código hash.

O acesso a um elemento ocorre assim:

  1. O código hash da chave é calculado usando hashCode().
  2. O código hash é convertido em um índice da matriz de buckets (geralmente através da operação hash & (capacity - 1)).
  3. No bucket selecionado, procura-se o elemento com a chave igual à procurada (comparação via equals()).
  4. Se o elemento for encontrado, o valor associado é retornado.

Exemplo:

HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // calcula-se o hash, escolhe-se o bucket, procura-se o elemento

Assim, o acesso a um elemento consiste em calcular o hash, selecionar o bucket e procurar pela chave dentro do bucket.