在Go 中按值對Map 進行排序
給定一個包含字串鍵和整數值的映射,我們可能會遇到需要對映射進行排序的情況會依特定順序排列其值。本教學概述了此常見程式設計任務的解決方案。
解決方案
在 Go 中按值對映射進行排序的一種方法是建立一個自訂資料結構,該結構實作排序介面。此介面定義了 Len、Less 和 Swap 方法,Go 的排序演算法使用這些方法來確定元素的順序。
以下是示範實現的範例程式碼區塊:
// 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 作為輸入並建立一個PairList,其中包含根據值降序排序的鍵值對。它利用 Go 內建的排序演算法來執行排序。
要使用此功能,您可以提供對應作為輸入並取得排序後的鍵值對的 PairList。
記住在程式碼中匯入排序包以有效地使用這些排序功能。
以上是如何以整數值對 Go 地圖進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!