前几天去面试,面试官问了我这样一个问题:如何顺序打印输出map
在go语言中,map是一种无序的key-value数据结构,且没有一个专门的方法针对map的key排序,如果想要按照map的key的顺序进行排序输出需要做以下三步:
①将map的key放入到一个切片中
var keys []int
for k,_ := range map1{
keys = append(keys, k)
}
②对切片进行排序(sort.Ints:对整数进行排序,sort.Strings:对字符串进行排序,sort.Float64s:对浮点数进行排序)
sort.Ints(keys)
fmt.Println(keys)
③遍历切片,按照key的顺序输出map的值
for _, k := range keys {
fmt.Printf("map1[%v]=%v \n", k, map1[k])
}