golang中map排序

package main

import (
	"fmt"
	"sort"
)

func main() {

	//golang中没有一个专门的方法针对map的key进行排序
	//golang中的map默认为是无序的,也不是按照添加的顺序存放的,每次遍历得到的输出可能不一样
	//golang中的map排序,是先将key进行排序,然后根据key值遍历输出

	num := make(map[int]int, 8)

	num[0] = 100
	num[1] = 80
	num[7] = 78
	num[5] = 64
	num[2] = 787
	num[6] = 666

	fmt.Println(num)

	//如果按照map的key的顺序进行排序输出
	/*
		1.先将map的key放入切片中
		2.对切片排序
		3.遍历切片,按照key来输出map值
	*/

	var key []int
	for k, _ := range num {

		key = append(key, k)
	}
	sort.Ints(key)
	fmt.Println(key)

	for _, k := range key {
		fmt.Printf("num[%v] = %v \n", k, num[k])
	}
}

  

posted @ 2022-03-06 13:51  Star_Gazer  阅读(1265)  评论(0编辑  收藏  举报