Junior — Middle
Hogyan növekszik a Map adatstruktúra mérete?
sobes.tech MI
Válasz az MI-től
Go-ban az adatszerkezet map dinamikus méretű hash-táblaként van megvalósítva. Új elemek hozzáadásakor, ha a térkép töltöttsége eléri a bizonyos küszöböt (általában körülbelül 6,5 elem/kosár), akkor méretbővítés történik (rehash): létrejön egy új hash-tábla nagyobb számú kosárral, és minden meglévő elem újra elosztásra kerül az új kosarak között.
Ez a folyamat automatikusan és felhasználó számára átlátható módon történik. A méret növelése segít alacsonyan tartani az ütközések valószínűségét és magas teljesítményt biztosít a keresési és beszúrási műveletek során.
Körülbelül így képzelhető el:
m := make(map[string]int)
m["a"] = 1
// Nagy mennyiségű elem hozzáadásakor a map automatikusan növeli a belső puffert
for i := 0; i < 1000; i++ {
m[fmt.Sprintf("key%d", i)] = i
}
Belsőleg a Go futásideje figyeli a terhelést, és szükség szerint növeli a térkép méretét.