Sobes.tech
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.