Junior — Middle
Puoi spiegare il principio di funzionamento dell'hash nella realizzazione di una mappa (Map)?
sobes.tech AI
Risposta dell'AI
In Go, una mappa (map) è implementata come una tabella hash, dove le chiavi vengono trasformate in valori hash tramite una funzione hash. Il principio di funzionamento dell'hash nella mappa è il seguente:
- Per una chiave data, viene calcolato un codice hash — un valore numerico che dipende dal contenuto della chiave.
- Il codice hash viene usato per determinare l'indice nell'array di bucket (cestini), dove viene memorizzato il valore.
- Se ci sono più elementi in un bucket (collisione), si effettua una ricerca tramite una catena o un altro meccanismo di risoluzione delle collisioni.
Questo permette di trovare, aggiungere e rimuovere elementi rapidamente per chiave con una complessità ammortizzata di circa O(1).
Esempio di utilizzo di una mappa in Go:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
In questo esempio, la stringa "apple" viene hashata e il valore 5 viene salvato nel bucket corrispondente.