go 中 map 排序

  • Post author:
  • Post category:其他


一 点睛

1 golang 中没有一个专门的方法针对 map 的 key 进行排序。

2 golang 中的 map 默认是无序的,注意也不是按照添加的顺序存放的,每次遍历,得到的输出可能不一样。

3 golang 中 map 的排序,是先将 key 进行排序,然后根据 key 值遍历输出即可。

二 代码

package main

import (
   "fmt"
   "sort"
)

func main() {
   // map的排序
   map1 := make(map[int]int)
   map1[10] = 100
   map1[1] = 13
   map1[4] = 56
   map1[8] = 90
   fmt.Println(map1)
   // 按照 map 的 key 的顺序进行排序输出
   // 1 先将 map 的 key 放入到切片中。
   // 2 对切片排序。
   // 3 遍历切片,然后按照 key 来输出 map 的值。
   var keys []int
   for k, _ := range map1 {
      keys = append(keys, k)
   }
   // 排序
   sort.Ints(keys)
   fmt.Println(keys)
   for _, k := range keys {
      fmt.Printf("map1[%v]=%v \n", k, map1[k])
   }
}

三 测试

map[10:100 1:13 4:56 8:90]
[1 4 8 10]
map1[1]=13
map1[4]=56
map1[8]=90
map1[10]=100

map[4:56 8:90 10:100 1:13]
[1 4 8 10]
map1[1]=13
map1[4]=56
map1[8]=90
map1[10]=100



版权声明:本文为chengqiuming原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。