Junior — Middle
Pode explicar a estrutura interna e o funcionamento do HashMap na linguagem Java?
sobes.tech IA
Resposta da IA
HashMap em Java é uma estrutura de dados para armazenar pares de chave-valor com acesso rápido através da chave.
Estrutura interna:
- HashMap usa um array de baldes (bucket array).
- Para a chave, é calculado um código hash (hashCode), que é então convertido em um índice do array.
- Em cada balde, armazenam-se elementos com o mesmo índice, geralmente na forma de uma lista ligada ou árvore (com Java 8, se houver muitas colisões).
Funcionamento:
- Ao inserir um objeto, o índice é calculado pelo hash da chave.
- Se o balde estiver vazio, o elemento é colocado lá.
- Se o balde estiver ocupado, verifica-se a igualdade das chaves (equals) para atualizar o valor ou adicionar um novo elemento.
- Para procurar por uma chave, também se calcula o índice e percorrem-se os elementos no balde para encontrar a correspondência.
Exemplo:
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5
Assim, o HashMap garante um tempo de acesso amortizado de O(1), mas com muitas colisões pode degradar para O(n).