Heim >Backend-Entwicklung >Golang >Wie kann ich eine Go-Map nach ihren Ganzzahlwerten in absteigender Reihenfolge sortieren?
In Go kann eine bestimmte Karte, in der Schlüssel vom Typ string und Werte vom Typ int sind, basierend auf ihren Werten in absteigender Reihenfolge sortiert werden Bestellung.
Beachten Sie Folgendes Karte:
map[string]int{"hello": 10, "foo": 20, "bar": 20}
Das Ziel besteht darin, die sortierten Schlüssel-Wert-Paare zu drucken als:
foo, 20 bar, 20 hello, 10
Um diese Sortierung zu erreichen, wird eine Implementierung der Go-Sort-Schnittstelle ist erforderlich. Dies geschieht durch die Definition der Funktionen Len(), Less() und Swap():
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 } type Pair struct { Key string Value int } type PairList []Pair func (p PairList) Len() int { return len(p) } func (p PairList) Less(i, j int) bool { return p[i].Value < p[j].Value } func (p PairList) Swap(i, j int){ p[i], p[j] = p[j], p[i] }
Durch die Implementierung der Sortierschnittstelle und die Nutzung der Funktion sort.Reverse Karten können in Go effektiv nach ihren Werten sortiert werden, was verschiedene Sortierszenarien ermöglicht.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Go-Map nach ihren Ganzzahlwerten in absteigender Reihenfolge sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!