Go での値によるマップの並べ替え
Go での値によるマップの並べ替えには、sort インターフェイスのカスタム実装が必要です。以下は、PairList タイプを実装し、並べ替えに必要な関数を定義するソリューションです。
1 2 3 | <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 関数を使用すると、マップを次のように並べ替えることができます。
1 2 3 | <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>
|
出力:
1 | <br>foo 20<br>bar 20<br>hello 10<br>
|
以上がGo マップを値で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。