首页 > 后端开发 > Golang > 如何按 Go Map 的整数值降序对 Go Map 进行排序?

如何按 Go Map 的整数值降序对 Go Map 进行排序?

Susan Sarandon
发布: 2024-12-10 13:56:15
原创
172 人浏览过

How Can I Sort a Go Map by Its Integer Values in Descending Order?

Go 中对 Map 值进行排序

在 Go 中,给定的 Map,其中键为 string 类型,值为 int 类型,可以根据其值进行降序排序顺序。

问题陈述:

考虑以下内容map:

map[string]int{"hello": 10, "foo": 20, "bar": 20}
登录后复制

目标是将排序后的键值对打印为:

foo, 20
bar, 20
hello, 10
登录后复制

实现:

为了实现这种排序,需要实现Go排序接口是必需的。这是通过定义 Len()、Less() 和 Swap() 函数来完成的:

func rankByWordCount(wordFrequencies map[string]int) PairList {
  pl := make(PairList, len(wordFrequencies))
  i := 0
  for k, v := range wordFrequencies {
    pl[i] = Pair{k, v}
    i++
  }
  sort.Sort(sort.Reverse(pl))
  return pl
}

type Pair struct {
  Key string
  Value int
}

type PairList []Pair

func (p PairList) Len() int { return len(p) }
func (p PairList) Less(i, j int) bool { return p[i].Value < p[j].Value }
func (p PairList) Swap(i, j int){ p[i], p[j] = p[j], p[i] }
登录后复制

结论:

通过实现排序接口并利用 sort.Reverse 函数,在 Go 中,map 可以根据值进行有效排序,从而实现各种排序场景。

以上是如何按 Go Map 的整数值降序对 Go Map 进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板