Sobes.tech
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])
    }
}