Sobes.tech
Junior — Middle

Elérhető-e gyorsabb iteráció egy listán egy Map-hez képest programozási nyelvekben?

sobes.tech MI

Válasz az MI-től

Igen, a Go-ban a szelet (slice) mentén történő iteráció általában gyorsabb, mint a Map mentén, mert a szelet egy szekvenciális tömb, míg a Map egy összetettebb szerkezetű hash-tábla.

A szelet mentén történő iteráció sorban történik a memóriában, amit a processzor jól cache-el, míg a Map hash-kalkulációkat igényel, és tetszőleges sorrendben járhatja be az elemeket.

Példa szelet iterációjára:

slice := []int{1, 2, 3, 4, 5}
for _, v := range slice {
    fmt.Println(v)
}

Map iteráció:

m := map[string]int{"a":1, "b":2}
for k, v := range m {
    fmt.Println(k, v)
}

Tehát, ha a sebesség és a sorrend fontos, akkor érdemes szeleteket használni.