Maison >développement back-end >Golang >Comment puis-je trier une carte Go par ses valeurs entières par ordre décroissant ?
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.
Considérez ce qui suit map :
map[string]int{"hello": 10, "foo": 20, "bar": 20}
Le but est d'imprimer les paires clé-valeur triées comme :
foo, 20 bar, 20 hello, 10
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] }
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!