ホームページ >バックエンド開発 >Golang >Go マップを整数値で降順に並べ替えるにはどうすればよいですか?

Go マップを整数値で降順に並べ替えるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-10 13:56:15170ブラウズ

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

Go でのマップ値の並べ替え

Go では、キーの型が string で値の型が int である特定のマップを、その値に基づいて降順に並べ替えることができます。

問題ステートメント:

次の点を考慮してください。マップ:

map[string]int{"hello": 10, "foo": 20, "bar": 20}

目標は、ソートされたキーと値のペアを次のように出力することです:

foo, 20
bar, 20
hello, 10

実装:

このソートを実現するには、 Go sort インターフェイスが必要です。これは、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 インターフェイスを実装し、sort.Reverse 関数を活用することで、 Go ではマップを値によって効果的に並べ替えることができるため、さまざまな並べ替えシナリオが可能になります。

以上がGo マップを整数値で降順に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。