Heim >Backend-Entwicklung >Golang >Wie sortiere ich eine String-Integer-Map nach Wert in absteigender Reihenfolge in Go?
Sortieren einer Karte nach ihren Werten
Bei einer Zuordnung von Zeichenfolgen zu Ganzzahlen ist es wünschenswert, die Karte nach ihren Werten in absteigender Reihenfolge zu sortieren bestellen.
Lösung:
Implementierung a Eine benutzerdefinierte Sortierschnittstelle kann diese Funktionalität erreichen. Der folgende Code stellt alle notwendigen Funktionen bereit, um eine Karte nach ihren Werten zu sortieren:
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] }
Zum Beispiel unter Verwendung der angegebenen Karte:
m := map[string]int{"hello": 10, "foo": 20, "bar": 20}
Die sortierte Ausgabe wäre:
foo, 20 bar, 20 hello, 10
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine String-Integer-Map nach Wert in absteigender Reihenfolge in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!