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

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

Patricia Arquette
リリース: 2024-12-20 07:56:13
オリジナル
180 人が閲覧しました

How to Sort a Go Map by its Values?

Go での値によるマップの並べ替え

Go での値によるマップの並べ替えには、sort インターフェイスのカスタム実装が必要です。以下は、PairList タイプを実装し、並べ替えに必要な関数を定義するソリューションです。

<br>func RankByWordCount(wordFrequency map[string]int) FairList {<br> pl := make(PairList, len(wordFrequency))<br> i := 0<br> for k, v := range wordFrequency {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">pl[i] = Pair{k, v}
i++
ログイン後にコピー

}
sort.Sort(sort.Reverse(pl))
return pl
}

type ペア構造体 {
キー文字列
値int
}

type CompareList []Pair

func (p FairList) Len() int { return len(p) }
func (p FairList) Less(i, j int) bool { return p[i].Value func (pペアリスト) Swap(i, j int){ p[i], p[j] = p[j], p[i] }

rankByWordCount 関数を使用すると、マップを次のように並べ替えることができます。

<br>wordFrequency := map[string]int{<br> "hello": 10,<br> "foo": 20,<br> "bar": 20 、<br>}</p>
<p>sortedPairs := RankByWordCount(wordFrequency)</p>
<p>for _、pair := rangesortedPairs {<br> fmt.Println(pair.Key,ペア.値)<br>}<br>

出力:

<br>foo 20<br>bar 20<br>hello 10<br>

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート