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

  1. Wyodrębnić wszystkie klucze z mapy do tablicy.
  2. Posortować tablicę kluczy za pomocą funkcji sort.
  3. 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).