Sobes.tech
Junior — Middle

A programozási nyelv Map adatszerkezete rendezhető kulcs szerint?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a beépített map adatszerkezet nem garantálja a kulcsok szerinti rendezést. A map elemeinek bejárási sorrendje véletlenszerű, és iterációk között változhat.

Ha a kulcsok szerint szeretnénk rendezni az elemeket, ki kell nyerni a kulcsokat egy szeletbe, rendezni a sort segítségével, majd a rendezett kulcsok sorrendjében végigmenni a mapen:

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

Így a map önmagában nem rendezett, de a rendezést kézzel meg lehet valósítani.