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

来源:互联网 发布:illustrator cs6 mac 编辑:程序博客网 时间:2024/06/04 18:24

想必大家都应该知道, Go语言的map元素类型是一个无序的数据结构,

那要实现对无序元素类型map排序操作怎么办呢,

你可以借助array, slice这样的有序结构,进行间接排序操作,

也就实现了这个需求

map元素的间接排序操作

package mainimport "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   
原创粉丝点击