Go での値によるマップの並べ替え
文字列キーと整数値を含むマップが与えられた場合、マップを並べ替える必要が生じる場合があります。値を特定の順序で順に並べます。このチュートリアルでは、この一般的なプログラミング タスクの解決策の概要を説明します。
解決策
Go でマップを値で並べ替える 1 つのアプローチは、ソート.インターフェイス。このインターフェイスは、要素の順序を決定するために Go の並べ替えアルゴリズムによって使用される Len、Less、および Swap メソッドを定義します。
実装を示すサンプル コード ブロックは次のとおりです。
// RankByWordCount sorts a map[string]int by its values in descending order. 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 } // Pair represents a key-value pair. type Pair struct { Key string Value int } // PairList is a list of Pair. type PairList []Pair // Len returns the length of the PairList. func (p PairList) Len() int { return len(p) } // Less compares two Pair and returns true if the first one should be // placed after the second one in the sorted list. func (p PairList) Less(i, j int) bool { return p[i].Value < p[j].Value } // Swap swaps two elements in the PairList. func (p PairList) Swap(i, j int){ p[i], p[j] = p[j], p[i] }
提供されたコードでは、rankByWordCount は入力として map[string]int を受け取り、次の基準に基づいて降順でソートされたキーと値のペアを含むペアリストを作成します。価値観。 Go の組み込みソート アルゴリズムを利用してソートを実行します。
この関数を使用するには、マップを入力として提供し、ソートされたキーと値のペアのペアリストを取得できます。
覚えておいてくださいこれらの並べ替え関数を効果的に使用するには、コードに並べ替えパッケージをインポートします。
以上がGo マップを整数値で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。