Junior — Middle
Hogyan lehet kinyerni az azonosító szerint rendezett értékeket egy hash-táblából?
sobes.tech MI
Válasz az MI-től
Go-ban a hash-tábla a map típus segítségével valósul meg, amely nem garantálja az elemek sorrendjét az iteráció során. Ahhoz, hogy kulcs szerint rendezett értékeket kapjunk (például azonosító szerint), a következőket kell tennünk:
- Minden kulcsot kivesszünk a térképből egy szeletbe.
- A szeletet a
sortfüggvény segítségével rendezzük. - A rendezett kulcsokon végigmegyünk, és lekérjük a megfelelő értékeket a térképből.
Példa:
package main
import (
"fmt"
"sort"
)
func main() {
data := map[int]string{
3: "három",
1: "egy",
2: "kettő",
}
// Kulcsok kivétele
keys := make([]int, 0, len(data))
for k := range data {
keys = append(keys, k)
}
// Kulcsok rendezése
sort.Ints(keys)
// Rendezett kulcsokon végigmenni
for _, k := range keys {
fmt.Printf("%d: %s\n", k, data[k])
}
}
Így értékeket kapsz, rendezve azonosító szerint (kulcs).