Sobes.tech
Junior — Middle

Hoe kunnen gesorteerde waarden op identificator uit een hash-tabel worden gehaald?

sobes.tech AI

Antwoord van AI

In Go wordt de hash-tabel geïmplementeerd met behulp van het type map, dat de volgorde van elementen tijdens iteratie niet garandeert. Om waarden gesorteerd op sleutel (bijvoorbeeld ID) te krijgen, moet je:

  1. Alle sleutels uit de kaart halen in een slice.
  2. De slice van sleutels sorteren met behulp van de sort-functie.
  3. Over de gesorteerde sleutels itereren en de bijbehorende waarden uit de kaart halen.

Voorbeeld:

package main

import (
    "fmt"
    "sort"
)

func main() {
    data := map[int]string{
        3: "drie",
        1: "een",
        2: "twee",
    }

    // Haal sleutels op
    keys := make([]int, 0, len(data))
    for k := range data {
        keys = append(keys, k)
    }

    // Sorteer sleutels
    sort.Ints(keys)

    // Loop over gesorteerde sleutels
    for _, k := range keys {
        fmt.Printf("%d: %s\n", k, data[k])
    }
}

Hierdoor krijg je waarden gesorteerd op identificator (sleutel).