Tri d'une carte par valeur dans Go
Étant donné une carte avec des clés de chaîne et des valeurs entières, nous pouvons rencontrer le besoin de trier la carte par ses valeurs dans un ordre précis. Ce didacticiel présente une solution à cette tâche de programmation courante.
Solution
Une approche pour trier une carte par valeur dans Go consiste à créer une structure de données personnalisée qui implémente le trier.Interface. Cette interface définit les méthodes Len, Less et Swap, qui sont utilisées par les algorithmes de tri de Go pour déterminer l'ordre des éléments.
Voici un exemple de bloc de code qui démontre l'implémentation :
// RankByWordCount sorts a map[string]int by its values in descending order. 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 } // Pair represents a key-value pair. type Pair struct { Key string Value int } // PairList is a list of Pair. type PairList []Pair // Len returns the length of the PairList. func (p PairList) Len() int { return len(p) } // Less compares two Pair and returns true if the first one should be // placed after the second one in the sorted list. func (p PairList) Less(i, j int) bool { return p[i].Value < p[j].Value } // Swap swaps two elements in the PairList. func (p PairList) Swap(i, j int){ p[i], p[j] = p[j], p[i] }
Dans le code fourni, RankByWordCount prend un map[string]int comme entrée et crée une PairList qui contient des paires clé-valeur triées par ordre décroissant en fonction du valeurs. Il utilise les algorithmes de tri intégrés de Go pour effectuer le tri.
Pour utiliser cette fonction, vous pouvez fournir votre carte en entrée et obtenir une PairList de paires clé-valeur triées.
N'oubliez pas pour importer le package de tri dans votre code pour utiliser ces fonctions de tri efficacement.
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!