Junior — Middle
How can elements be sorted in an associative array (map)?
sobes.tech AI
Answer from AI
In Go, a map is an unordered collection, so it cannot be sorted directly. To sort the elements, you need to:
- Extract the keys from the map into a slice.
- Sort the slice of keys using sort.
- Iterate over the sorted keys and retrieve the corresponding values from the map.
Example of sorting a map by keys:
package main
import (
"fmt"
"sort"
)
func main() {
m := map[string]int{"apple": 5, "banana": 2, "cherry": 7}
// Extract keys
keys := make([]string, 0, len(m))
for k := range m {
keys = append(keys, k)
}
// Sort keys
sort.Strings(keys)
// Print elements in sorted order
for _, k := range keys {
fmt.Printf("%s: %d\n", k, m[k])
}
}
If you need to sort by values, you can create a slice of structs or key-value pairs and sort it by value.