Sobes.tech
Junior — Middle

Come è implementata la struttura dati map per memorizzare e accedere alle coppie chiave-valore all'interno del sistema?

sobes.tech AI

Risposta dell'AI

In Go, la struttura dati map è implementata come una tabella hash che consente un accesso rapido ai valori tramite le chiavi. Quando si aggiunge una coppia chiave-valore, la chiave viene hashata e l'hash determina l'indice nell'array di bucket dove viene memorizzato il valore.

Punti chiave dell'implementazione:

  • Si utilizza un'indirizzamento aperto con catene per risolvere le collisioni.
  • In caso di collisioni, gli elementi vengono memorizzati in liste concatenate all'interno dei bucket.
  • Quando il numero di elementi aumenta, si effettua una riorganizzazione (rehash) per mantenere le prestazioni.

Esempio di utilizzo di map in Go:

m := make(map[string]int)
m["apple"] = 5
value, exists := m["apple"]
if exists {
    fmt.Println("Valore per 'apple':", value)
}