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)
}