Sobes.tech
Junior — Middle

É possível obter uma iteração mais rápida sobre uma lista em comparação com um Map em linguagens de programação?

sobes.tech IA

Resposta da IA

Sim, a iteração sobre um slice em Go costuma ser mais rápida do que sobre um Map, porque um slice é um array sequencial de elementos, enquanto que um Map é uma tabela de hash com uma estrutura mais complexa.

A iteração sobre um slice ocorre sequencialmente na memória, o que é bem cacheado pelo processador, enquanto que o Map requer o cálculo de hashes e pode ter uma ordem de percurso arbitrária.

Exemplo de iteração sobre um slice:

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

Iterando sobre um Map:

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

Portanto, se a velocidade de percurso e a ordem forem importantes, é melhor usar slices.