Junior — Middle
Pode explicar a estrutura interna e o funcionamento da tabela hash em Java?
sobes.tech IA
Resposta da IA
Uma tabela de hash em Java (por exemplo, HashMap) é uma estrutura de dados que armazena pares chave-valor e fornece acesso rápido através da chave.
Estrutura interna:
- A base é um array de baldes (cestos).
- Cada balde contém ou
null, ou uma lista ligada (ou uma árvore, se houver muitos elementos) de elementos com o mesmo código hash módulo do tamanho do array.
Mecanismo de funcionamento:
- Ao adicionar um elemento, calcula-se o código hash da chave e determina-se o índice do balde.
- Se o balde estiver vazio, o elemento é colocado lá.
- Se o balde estiver ocupado, procura-se na lista ligada (ou árvore) para verificar se a chave já existe:
- Se a chave for encontrada, o valor é atualizado.
- Caso contrário, o elemento é adicionado à lista.
- Quando um limite de preenchimento é atingido, ocorre uma expansão do array (rehash) para manter o desempenho.
Essa abordagem garante uma complexidade média de operações de inserção, busca e remoção próxima de O(1).
Exemplo de uso:
Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // acesso rápido pela chave