Sobes.tech
Назад к вопросам
Junior — Middle
79

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

Компании, где спрашивали
МТС DigitalМТС Digital

Ответ от нейросети

sobes.tech AI

В Go хэш-таблица реализуется с помощью типа map, который не гарантирует порядок элементов при итерации. Чтобы получить значения, отсортированные по ключу (например, идентификатору), нужно:

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

Пример:

package main

import (
    "fmt"
    "sort"
)

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

    // Извлекаем ключи
    keys := make([]int, 0, len(data))
    for k := range data {
        keys = append(keys, k)
    }

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

    // Проходим по отсортированным ключам
    for _, k := range keys {
        fmt.Printf("%d: %s\n", k, data[k])
    }
}

Так вы получите значения, отсортированные по идентификатору (ключу).