go语言遍历map和按序输出

map是一种无序的key-value数据结构,使用for-range语句就可以遍历。当需要按序打印输出,可以把map中的对应数据拷贝到切片里,使用sort包里的排序函数进行排序。sort.Ints:对整数进行排序,sort.Strings:对字符串进行排序,sort.Float64s:对浮点数进行排序。

package main

import (
    "fmt"
	"sort"
)

func printslice(s []int,name string) {
	for i,v:= range s {
		fmt.Printf("第%v个元素:%v\n",i+1,v)
	}	
	fmt.Printf("\n打印%s: len=%d cap=%d ---\n",name,len(s),cap(s))	
}
func main() {
	//var map1 =map[int]string{} //这种是直接初始化列表形式后面加{},创建一个map对象
	var map1=make(map[int]string) //这种是直接通过make函数创建。
	map1[5]="xiaxia"
	map1[1]="kdkdd"
	map1[8]="abc"	
	map1[4]="china"		
	for k,v:= range map1 {
		fmt.Printf("%v-%v\n",k,v)
	}
	ks:=[]int{}
	for k:=range map1 {
		ks=append(ks,k) //把map1中的key保存到一个切片中,
	}
	printslice(ks,"ks")	

	/*sort.Ints:对整数进行排序
	sort.Strings:对字符串进行排序
	sort.Float64s:对浮点数进行排序	
	*/
	sort.Ints(ks) //对切片排序,按int
	printslice(ks,"ks")	
	fmt.Println("排序后再打印:")
	for i:=0;i

你可能感兴趣的:(go)