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

  1. Extrair todas as chaves do mapa para um slice.
  2. Ordenar o slice de chaves usando a função sort.
  3. 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).