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 サイトの他の関連記事を参照してください。