从地图的键和值创建数组的最短(和惯用)方法是什么,不会过多地影响时间复杂度?
例如,从以下地图:
map[string]string { "1":"a", "2":"b" }
我需要创建以下数组:
[]string{"1","a", "2","b"}
我可以在Scala中执行以下操作:
val myMap = Map("1" -> "a", "2" -> "b")
myMap.keySet ++ myMap.values
谢谢。
答案 0 :(得分:10)
最简单的方法是迭代映射,因为在Go中语法允许直接访问键和值并将它们转储到数组中。
m := map[string]string { "1":"a", "2":"b" }
arr := []string{}
for k, v := range m {
arr = append(arr, k, v)
}
这里有一点需要注意:在Go中,地图迭代顺序是随机的,正如您在此处看到的,在“迭代顺序”下:
https://blog.golang.org/go-maps-in-action
因此,如果您希望生成的数组具有特定的排序,则应首先转储密钥和顺序(如同一个博客条目中所示)。
游乐场(没有排序部分):