Junior — Middle
Da li je moguće postići bržu iteraciju preko liste u poređenju sa Map u programskim jezicima?
sobes.tech АИ
Одговор од АИ
Da, iteriranje po slice-u u Go obično je brže nego po Map-u, jer je slice sekvencijalni niz elemenata, dok je Map hash tabela sa složenijom strukturom.
Iteriranje po slice-u se dešava sekvencijalno u memoriji, što je dobro keširano od strane procesora, dok Map zahteva računanje heševa i može imati proizvoljan red prolaska.
Primer iteriranja po slice-u:
slice := []int{1, 2, 3, 4, 5}
for _, v := range slice {
fmt.Println(v)
}
Iteriranje po Map-i:
m := map[string]int{"a":1, "b":2}
for k, v := range m {
fmt.Println(k, v)
}
Dakle, ako je brzina i red važan, bolje je koristiti slice-ove.