首頁 > 後端開發 > Golang > 如何以整數值對 Go 地圖進行排序?

如何以整數值對 Go 地圖進行排序?

Susan Sarandon
發布: 2024-12-30 07:28:09
原創
728 人瀏覽過

How to Sort a Go Map by its Integer Values?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板