Junior — Middle
Hoe worden de verbindingen tussen sleutels en waarden in de gegevensstructuur Map gemaakt en onderhouden?
sobes.tech AI
Antwoord van AI
In Go implementeert de datastructuur map een associatief array, waarbij sleutels gekoppeld zijn aan waarden. Het maken en onderhouden van deze koppelingen gebeurt als volgt:
- Bij het maken van een
mapwordt een hash-tabel toegewezen, waarin de sleutels worden gehasht voor snelle toegang. - Voor elke sleutel wordt een hash-functie berekend die de index in de bucket-array bepaalt.
- In de buckets worden sleutel-waardeparen opgeslagen. Bij een collision (meerdere sleutels met dezelfde hash) wordt een gekoppelde lijst of een andere structuur gebruikt om meerdere paren op te slaan.
- Bij het toevoegen of bijwerken van een waarde via een sleutel zoekt de
mapde bucket via de hash en werkt het paar bij of voegt het toe. - Bij het lezen van een waarde via een sleutel wordt een vergelijkbare zoekactie uitgevoerd via de hash en de vergelijking van sleutels.
Voorbeeld van gebruik van map:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
Op deze manier worden de koppelingen tussen sleutels en waarden onderhouden door de hashing van sleutels en het opslaan van paren in de bijbehorende buckets.