Junior — Middle
Kunt u het principe van hashing in de implementatie van een kaart (Map) uitleggen?
sobes.tech AI
Antwoord van AI
In Go wordt een kaart (map) geïmplementeerd als een hash-tabel, waarbij de sleutels worden omgezet in hash-waarden met behulp van een hash-functie. Het werkingsprincipe van hashing in de kaart is als volgt:
- Voor een gegeven sleutel wordt een hash-code berekend — een numerieke waarde die afhangt van de inhoud van de sleutel.
- De hash-code wordt gebruikt om de index in de array van buckets (manden) te bepalen, waar de waarde wordt opgeslagen.
- Als er meerdere elementen in een bucket zijn (botsing), wordt er gezocht via een keten of een ander mechanisme voor het oplossen van botsingen.
Dit maakt het mogelijk om elementen snel te vinden, toe te voegen en te verwijderen op basis van de sleutel met een geamortiseerde complexiteit van ongeveer O(1).
Voorbeeld van het gebruik van een kaart in Go:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
In dit voorbeeld wordt de string "apple" gehasht, en wordt de waarde 5 opgeslagen in de bijbehorende bucket.