go 中 map 排序

一点睛

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 
", 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值