go语言多次遍历map时保证元素顺序一致的一种方法

//本演示程序展示内容:
//1. go运行时在初始化map迭代器时对起始位置做了随机处理,因此不要依赖遍历map所得到的元素顺序,同一map多次
//   遍历,遍历的元素次序并不相同。
//2. 可以利用slice按照一定的顺序遍历map,保证每次遍历顺序一致

package main

import "fmt"

func doIteration(s []int, m map[int]int) {
	fmt.Printf("{ ")
	for _, k := range s {
		v, ok := m[k]
		if !ok {
			continue
		}
		fmt.Printf("[%d, %d]", k, v)
	}
	fmt.Printf(" }\n")
}

func main() {
	var s []int
	m := map[int]int{
		1: 11,
		2: 22,
		3: 33,
	}
	for k, _ := range m {
		s = append(s, k)
	}
	for i := 0; i < 3; i++ {
		doIteration(s, m)
	}
	//doIteration(s, m)
}

Go语言基础及实战 文章被收录于专栏

Go语言学习笔记、语法知识、技术要点和个人理解及实战

全部评论
思路是怎么样的啊?看不懂
点赞 回复 分享
发布于 2023-03-28 14:24 四川
一句话总结:使用一个数组使得key有序,然后根据key在map里面取数据,这样取出来的value也是有序的
点赞 回复 分享
发布于 2023-03-26 15:07 湖南

相关推荐

嵐jlu:我是山川🐔里🐔🧱的,阿里系简历全过; 你这简历一看就还是半成品啊,没有荣誉经历奖项什么的吗?
投递阿里巴巴集团等公司10个岗位
点赞 评论 收藏
分享
06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务