Junior — Middle
A Map adatszerkezet garantálja az elemek beszúrási sorrendjének megőrzését?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a map adatszerkezet nem garantálja az elemek beszúrási sorrendjének megőrzését. A map feletti iteráció véletlenszerű sorrendben történik, amely minden bejárásnál változhat.
Ha meg kell őrizni a beszúrás sorrendjét, akkor egy kiegészítő struktúrát kell használni, például egy szeletet (slice) a kulcsok tárolására a kívánt sorrendben, vagy külső könyvtárakat, amelyek rendezett szótárakat valósítanak meg.
Példa a map bejárására a kulcsok sorrendjének megőrzésével:
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "b", "c"} // beszúrás sorrendje
for _, k := range keys {
fmt.Println(k, m[k])
}
}