简单的方法来按字母顺序获得地图中的按键
在Go中,获取按照字母顺序排列的地图中的按键的最简单方法是什么? 这是我能做到的最短的方式:
package main import "container/vector" import "fmt" import "sort" func main() { m := map[string]string {"b":"15", "z":"123123", "x":"sdf", "a":"12"} var keys vector.StringVector; for k,_ := range ( m ) { keys.Push(k) } sort.Sort( &keys ) fmt.Printf("%v\n", keys) }
您正在使用StringVectorsortingstring数组。 为了尽量减less开销,可以对string数组进行sorting。
package main import ( "fmt" "sort" ) func main() { m := map[string]string{"b": "15", "z": "123123", "x": "sdf", "a": "12"} mk := make([]string, len(m)) i := 0 for k, _ := range m { mk[i] = k i++ } sort.Strings(mk) fmt.Println(mk) }
输出:
[abxz]
这将是最优雅的方法:
package main import ( "fmt" "sort" ) func main() { m := map[string]string{"b": "15", "z": "123123", "x": "sdf", "a": "12"} keys := make([]string, 0, len(m)) for key := range m { keys = append(keys, key) } sort.Strings(keys) fmt.Println(keys) }