我是golang的新手,我想在这样的地图中反转成对出现的顺序,以便最后一对出现在第一位:
mapA := map[string]int {
"cat": 5,
"dog": 2,
"fish": 3 ,
}
fmt.Println(mapA)
map[cat:5 dog:2 fish:3]
生成的地图应类似于:
map[fish:3 dog:2 cat:5]
它可以是具有相同项目但顺序颠倒的新mapB。
我该如何实现?
答案 0 :(得分:6)
The Go Programming Language Specification
地图是无序的元素组。
未指定地图的迭代顺序,因此无法保证 从一个迭代到下一个迭代都是相同的。
不能。未订购Go地图。 Go映射是一个哈希映射(哈希表)。
要按顺序(或相反的顺序)获取地图内容,请将地图内容读取为片并将其排序。
哈希表使用哈希函数将索引计算为 可以从中找到所需值的存储桶或插槽。
缺点
可以高效地枚举存储在哈希表中的条目(在 每次登录费用不变),但仅按某些伪随机顺序进行。 因此,没有有效的方法来找到其关键字是 最接近给定键。以特定顺序列出所有n个条目 通常需要一个单独的分类步骤,其成本是成比例的 记录每个条目的n个。