Junior — Middle
Como é que se podem extrair valores ordenados por identificador de uma tabela de hash?
sobes.tech IA
Resposta da IA
Em Go, a tabela hash é implementada usando o tipo map, que não garante a ordem dos elementos durante a iteração. Para obter valores ordenados por chave (por exemplo, por identificador), deve-se:
- Extrair todas as chaves do mapa para um slice.
- Ordenar o slice de chaves usando a função
sort. - Percorrer as chaves ordenadas e obter os valores correspondentes do mapa.
Exemplo:
package main
import (
"fmt"
"sort"
)
func main() {
data := map[int]string{
3: "três",
1: "um",
2: "dois",
}
// Extrair chaves
keys := make([]int, 0, len(data))
for k := range data {
keys = append(keys, k)
}
// Ordenar chaves
sort.Ints(keys)
// Percorrer chaves ordenadas
for _, k := range keys {
fmt.Printf("%d: %s\n", k, data[k])
}
}
Dessa forma, você obterá valores ordenados por identificador (chave).