Junior — Middle
Czy możesz wyjaśnić zasadę działania haszowania w implementacji mapy (Map)?
sobes.tech AI
Odpowiedź od AI
W języku Go mapa (mapa) jest zaimplementowana jako tabela haszująca, w której klucze są przekształcane na wartości hash za pomocą funkcji hash. Zasada działania haszowania w mapie jest następująca:
- Dla podanego klucza obliczany jest kod hash — wartość numeryczna zależna od zawartości klucza.
- Kod hash jest używany do określenia indeksu w tablicy kubełków (koszyków), gdzie przechowywana jest wartość.
- Jeśli w kubełku znajduje się kilka elementów (kolizja), odbywa się wyszukiwanie za pomocą łańcucha lub innego mechanizmu rozwiązywania kolizji.
To umożliwia szybkie znajdowanie, dodawanie i usuwanie elementów po kluczu z amortyzowaną złożonością około O(1).
Przykład użycia mapy w Go:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
W tym przykładzie ciąg "apple" jest haszowany, a wartość 5 jest zapisywana w odpowiednim kubełku.