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

  1. Para uma chave dada, calcula-se um código hash — um valor numérico que depende do conteúdo da chave.
  2. O código hash é usado para determinar o índice no array de buckets (cestos), onde o valor é armazenado.
  3. 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.