想必大家都應該知道, Go語言的map元素類型是一個無序的數據結構,
那要實現對無序元素類型map排序操作怎麼辦呢,
你可以藉助array, slice這樣的有序結構,進行間接排序操作,
也就實現了這個需求
map元素的間接排序操作
package main
import "fmt"
import "sort"
func main() {
// 原始map
m := map[int]string{2: "b", 1: "a", 3: "c", 5: "e", 6: "f", 4: "d" }
// 空slice切片
s := make([]int, len(m))
// slice 切片索引初始化
index := 0
for k, _ := range m{
// 將變量名爲 s 的 slice 的索引爲 index 保存爲對應變量名爲 m 的 map 的鍵 k
s[index] = k
// 每循環一次, 變量名爲 s 的 slice 的索引值 index + 1
index++
}
// 對切片 s 做排序操作, 要導入一個包 sort, 其中有一個方法 Ints 是根據數字排序操作
sort.Ints(s)
// 取出排序後的map元素, 你放心, 每一次取出的值排序一定是 `a b c d e f`, 而不是無序的
for _, v := range s{
fmt.Printf("%s\t",m[v])
}
}
map元素的間接排序結果
a b c d e f