Maison > développement back-end > Golang > Comment puis-je trier une carte Go par ses valeurs entières par ordre décroissant ?

Comment puis-je trier une carte Go par ses valeurs entières par ordre décroissant ?

Susan Sarandon
Libérer: 2024-12-10 13:56:15
original
237 Les gens l'ont consulté

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

Tri des valeurs de la carte dans Go

Dans Go, une carte donnée où les clés sont de type chaîne et les valeurs sont de type int peut être triée en fonction de ses valeurs en ordre décroissant commande.

Énoncé du problème :

Considérez ce qui suit map :

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

Le but est d'imprimer les paires clé-valeur triées comme :

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

Implémentation :

Pour réaliser ce tri, une implémentation du Aller trier l’interface est nécessaire. Cela se fait en définissant les fonctions Len(), Less() et 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] }
Copier après la connexion

Conclusion :

En implémentant l'interface de tri et en tirant parti de la fonction sort.Reverse, les cartes peuvent être efficacement triées par leurs valeurs dans Go, permettant divers scénarios de tri.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal