Heim > Backend-Entwicklung > Golang > Wie kann ich eine Go-Map nach ihren Ganzzahlwerten in absteigender Reihenfolge sortieren?

Wie kann ich eine Go-Map nach ihren Ganzzahlwerten in absteigender Reihenfolge sortieren?

Susan Sarandon
Freigeben: 2024-12-10 13:56:15
Original
173 Leute haben es durchsucht

How Can I Sort a Go Map by Its Integer Values in Descending Order?

Sortieren von Kartenwerten in Go

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.

Problemstellung:

Beachten Sie Folgendes Karte:

map[string]int{"hello": 10, "foo": 20, "bar": 20}
Nach dem Login kopieren

Das Ziel besteht darin, die sortierten Schlüssel-Wert-Paare zu drucken als:

foo, 20
bar, 20
hello, 10
Nach dem Login kopieren

Implementierung:

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] }
Nach dem Login kopieren

Fazit:

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage