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

  1. Minden kulcsot kivesszünk a térképből egy szeletbe.
  2. A szeletet a sort függvény segítségével rendezzük.
  3. 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).