Junior — Middle
Pode explicar o princípio de funcionamento da hash na implementação de um mapa (Map)?
sobes.tech IA
Resposta da IA
Em Go, um mapa (mapa) é implementado como uma tabela de hash, onde as chaves são transformadas em valores de hash usando uma função de hash. O princípio de funcionamento do hashing no mapa é o seguinte:
- Para uma chave dada, calcula-se um código hash — um valor numérico que depende do conteúdo da chave.
- O código hash é usado para determinar o índice no array de buckets (cestos), onde o valor é armazenado.
- Se houver vários elementos em um bucket (colisão), realiza-se uma busca por meio de uma cadeia ou outro mecanismo de resolução de colisões.
Isso permite encontrar, adicionar e remover elementos rapidamente por chave com uma complexidade amortizada de cerca de O(1).
Exemplo de uso de um mapa em Go:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
Neste exemplo, a string "apple" é hashada, e o valor 5 é armazenado no bucket correspondente.