Как получить отсортированные значения из хэш-таблицы по Id

«Как получить отсортированные значения из хэш-таблицы по Id» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go можно отсортировать значения мапы по ключам, выполнив следующие шаги:

  1. Получить ключи из мапы
  2. Отсортировать ключи
  3. Пройти по отсортированным ключам и получить значения

Пример:

package main

import (
    "fmt"
    "sort"
)

func main() {
    m := map[int]string{
        3: "three",
        1: "one",
        4: "four",
        2: "two",
    }

    // 1. Получаем ключи
    keys := make([]int, 0, len(m))
    for k := range m {
        keys = append(keys, k)
    }

    // 2. Сортируем ключи
    sort.Ints(keys)

    // 3. Получаем значения по отсортированным ключам
    for _, k := range keys {
        fmt.Println(k, m[k])
    }
}

Вывод:

1 one
2 two
3 three
4 four

Для других типов ключей используйте соответствующие функции сортировки из пакета sort.