Sobes.tech
Junior — Middle

Czy struktura danych Map w języku programowania jest sortowalna po kluczach?

sobes.tech AI

Odpowiedź od AI

W języku Go wbudowana struktura danych map nie gwarantuje sortowania po kluczach. Kolejność iteracji elementów w mapie jest losowa i może się zmieniać między iteracjami.

Jeśli konieczne jest posortowanie elementów po kluczach, należy wyodrębnić klucze do tablicy, posortować ją za pomocą sort, a następnie przejść po mapie w kolejności posortowanych kluczy:

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])
}

W ten sposób mapa sama w sobie nie jest posortowana, ale sortowanie można zaimplementować ręcznie.