Sobes.tech
Junior — Middle

Чӣ гуна андозаи сохтори маълумоти Map зиёд мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар Go структураи маълумот map ҳамчун ҷадвали хеш бо андозаи динамикӣ амалӣ карда шудааст. Ҳангоми илова кардани унсурҳои нав, агар боркунии харита ба ҳадди муайян (одатан тақрибан 6.5 унсур дар як кофа) расад, андоза зиёд мешавад (rehash): як хеш таблиғи нав бо шумораи калонтарини кофҳо эҷод мешавад ва ҳамаи унсурҳои мавҷуда ба кофҳои нав тақсим карда мешаванд.

Ин раванд автоматӣ ва барои корбар ошкор аст. Зиёд кардани андоза кӯмак мекунад, ки эҳтимолияти кокулаҳо паст нигоҳ дошта шавад ва иҷрои баланд дар амалиётҳои ҷустуҷӯ ва воридот таъмин карда шавад.

Шояд инро тақрибан чунин тасаввур кунед:

m := make(map[string]int)
m["a"] = 1
// Ҳангоми илова кардани миқдори зиёди унсурҳо, харита автоматӣ буферро дарунӣ зиёд мекунад
for i := 0; i < 1000; i++ {
    m[fmt.Sprintf("key%d", i)] = i
}

Дар дохили, runtime-и Go борро назорат мекунад ва андозаи харитаро мувофиқи зарурат зиёд мекунад.