Junior — Middle
Jak wyodrębnić posortowane według identyfikatora wartości z tablicy haszującej?
sobes.tech AI
Odpowiedź od AI
W Go tabela hash jest implementowana za pomocą typu map, który nie gwarantuje kolejności elementów podczas iteracji. Aby uzyskać wartości posortowane według klucza (np. identyfikatora), należy:
- Wyodrębnić wszystkie klucze z mapy do tablicy.
- Posortować tablicę kluczy za pomocą funkcji
sort. - Przejść po posortowanych kluczach i pobrać odpowiadające im wartości z mapy.
Przykład:
package main
import (
"fmt"
"sort"
)
func main() {
data := map[int]string{
3: "trzy",
1: "jeden",
2: "dwa",
}
// Wyodrębnij klucze
keys := make([]int, 0, len(data))
for k := range data {
keys = append(keys, k)
}
// Posortuj klucze
sort.Ints(keys)
// Przejdź po posortowanych kluczach
for _, k := range keys {
fmt.Printf("%d: %s\n", k, data[k])
}
}
W ten sposób otrzymasz wartości posortowane według identyfikatora (klucza).