加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何按顺序遍历golang中的地图?

发布时间:2020-12-16 19:21:07 所属栏目:大数据 来源:网络整理
导读:请看下面我的地图 var romanNumeralDict map[int]string = map[int]string{ 1000: "M",900 : "CM",500 : "D",400 : "CD",100 : "C",90 : "XC",50 : "L",40 : "XL",10 : "X",9 : "IX",5 : "V",4 : "IV",1 : "I",} 我希望按照键的大小顺序遍历此映射 for k,v :
请看下面我的地图
var romanNumeralDict map[int]string = map[int]string{
  1000: "M",900 : "CM",500 : "D",400 : "CD",100 : "C",90  : "XC",50  : "L",40  : "XL",10  : "X",9   : "IX",5   : "V",4   : "IV",1   : "I",}

我希望按照键的大小顺序遍历此映射

for k,v := range romanNumeralDict {
    fmt.Println("k:",k,"v:",v)
  }

然而,这打印出来

k: 1000 v: M
k: 40 v: XL
k: 5 v: V
k: 4 v: IV
k: 900 v: CM
k: 500 v: D
k: 400 v: CD
k: 100 v: C
k: 90 v: XC
k: 50 v: L
k: 10 v: X
k: 9 v: IX
k: 1 v: I

有没有办法可以按照键的大小顺序打印出来,所以,我想像这样循环遍历这张地图

k:1
K:4
K:5
K:9
k:10

等等…

非常感谢您的帮助!

收集所有密钥,对它们进行排序并按键迭代地图,如下所示:
keys := make([]int,0)
for k,_ := range romanNumeralDict {
    keys = append(keys,k)
}
sort.Ints(keys)
for _,k := range keys {
    fmt.Println(k,romanNumeralDict[k])
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读