golang关于 对map根据value对key进行排序

项目中遇到一个对map[int32]int32根据value对key进行排序(从大到小)的场景,一个很小的问题,思路是新建一个数组,先把每个key加进去,然后再进行排序。数据量很小,所以就直接用冒泡排序了,如果数据量大的话,建议可以用其他排序。

func sortMap(s map[int32]int32) []int32 {
	var rank []int32
	for  key, _ := range s {
		rank = append(rank, key)
	}
	for i := 0; i < len(rank); i++ {
		for j := i + 1; j < len(rank); j++ {
			if s[rank[i]] < s[rank[j]] {
				rank[i], rank[j] = rank[j], rank[i]
			}
		}
	}
	return rank
}

你可能感兴趣的:(golang)