Sobes.tech
Junior — Middle

Дали структурата от данни Map в езика за програмиране е сортирана по ключове?

sobes.tech AI

Отговор от AI

В езика Go вграденият тип данни map не гарантира сортиране по ключове. Поредността на обхождане на елементите в map е случайна и може да се променя между итерациите.

Ако е необходимо да сортирате елементите по ключове, трябва да извлечете ключовете в срез, да ги сортирате с помощта на sort и след това да обхождате map в реда на сортираните ключове:

keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, m[k])
}

По този начин, map сам по себе си не е сортиран, но сортирането може да бъде реализирано ръчно.