项目中遇到一个对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
}