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

  1. Vyextrahovat všechny klíče z mapy do pole.
  2. Pole klíčů setřídit pomocí funkce sort.
  3. 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).