您的位置:首页 > 编程语言 > Go语言

Go实现map元素的间接排序操作

2017-07-05 22:13 232 查看
想必大家都应该知道, 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  go语言
相关文章推荐