Tri d'une carte par ses valeurs dans Go
Tri d'une carte par ses valeurs dans Go nécessite une implémentation personnalisée de l'interface de tri. Voici une solution qui implémente un type PairList et définit les fonctions nécessaires au tri :
<br>func RankByWordCount(wordFrequencies map[string]int) PairList {<br> pl := make(PairList, len(wordFrequencies))<br> i := 0<br> pour k, v := range wordFrequencies {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">pl[i] = Pair{k, v} i++
}
sort.Sort(sort.Reverse(pl))
return pl
}
type Pair struct {
Chaîne de clé
Valeur 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 utilisant la fonction RankByWordCount, vous pouvez trier une carte comme suit :
<br>wordFrequencies := map[string]int{<br> "hello": 10,<br> "foo": 20,<br> "bar": 20 ,<br>}</p> <p>paires triées := RankByWordCount(wordFrequencies)</p> <p>for _, pair := range sortedPairs {<br> fmt.Println(pair.Key, pair.Value)<br>}<br>
Sortie :
foo 20
bar 20
bonjour 10Ce 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!