Junior — Middle
Jak získat hodnoty seřazené podle identifikátoru z hash tabulky?
sobes.tech AI
Odpověď od AI
V Go je hashová tabulka implementována pomocí typu map, který nezaručuje pořadí prvků při iteraci. Abychom získali hodnoty seřazené podle klíče (například identifikátoru), musíme:
- Vyextrahovat všechny klíče z mapy do pole.
- Pole klíčů setřídit pomocí funkce
sort. - Projít seřazené klíče a získat odpovídající hodnoty z mapy.
Příklad:
package main
import (
"fmt"
"sort"
)
func main() {
data := map[int]string{
3: "tři",
1: "jeden",
2: "dva",
}
// Vyextrahovat klíče
keys := make([]int, 0, len(data))
for k := range data {
keys = append(keys, k)
}
// Seřadit klíče
sort.Ints(keys)
// Projít seřazené klíče
for _, k := range keys {
fmt.Printf("%d: %s\n", k, data[k])
}
}
Tímto způsobem získáte hodnoty seřazené podle identifikátoru (klíče).