Sobes.tech
Junior — Middle

Kuidas toimub elementide läbikäimise järjekord Map andmestruktuuris?

sobes.tech AI

Vastus AI-lt

Go keeles andmestruktuur map ei garanteeri kindlat elementide läbimise järjekorda. for range tsükli kasutamisel on järjekord juhuslik ja võib iga programmi käivitamisel muutuda.

Näide map elementide läbimisest:

m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
    fmt.Println(key, value)
}

Kui on vaja järjestatud läbimist, tavaliselt väljastatakse võtmed massiivi, sorteeritakse need ja siis läbitakse sorteeritud massiiv:

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

Seega, map läbimise järjekord vaikimisi ei ole määratletud ja on juhuslik.