Maison > développement back-end > Golang > Comment trier une carte de chaîne de caractères entiers par valeur dans l'ordre décroissant en Go ?

Comment trier une carte de chaîne de caractères entiers par valeur dans l'ordre décroissant en Go ?

DDD
Libérer: 2024-12-15 15:16:20
original
739 Les gens l'ont consulté

How to Sort a String-Integer Map by Value in Descending Order in Go?

Tri d'une carte par ses valeurs

Étant donné une carte de chaînes en nombres entiers, il est souhaitable de trier la carte par ses valeurs dans l'ordre décroissant commander.

Solution :

La mise en œuvre d'une interface de tri personnalisée peut obtenir cette fonctionnalité. Le code suivant fournit toutes les fonctions nécessaires pour trier une carte par ses valeurs :

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] }
Copier après la connexion

Par exemple, en utilisant la carte donnée :

m := map[string]int{"hello": 10, "foo": 20, "bar": 20}
Copier après la connexion

La sortie triée serait :

foo, 20
bar, 20
hello, 10
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal