在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) }
您正在使用StringVector对字符串数组进行排序。为了最大程度地减少开销,您可以对字符串数组进行排序。
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) }
输出:
[a b x z]