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.