Mengisih Peta mengikut Nilainya dalam Go
Mengisih peta mengikut nilainya dalam Go memerlukan pelaksanaan tersuai antara muka isihan. Berikut ialah penyelesaian yang melaksanakan jenis PairList dan mentakrifkan fungsi yang diperlukan untuk mengisih:
<br>func rankByWordCount(wordFrequencies map[string]int) PairList {<br> pl := make(PairList, len(wordFrequencies))<br> i := 0<br> untuk k, v := julat 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.Isih(sort.Reverse(pl))
return pl
}
taip Pair struct {
Key string
Value int
}
taip PairList []Pair
func (p PairList) Len() int { return len(p) }
func (p PairList) Kurang(i, j int) bool { pulangkan p[i].Nilai < p[j].Nilai }
func (p PairList) Tukar(i, j int){ p[i], p[j] = p[j], p[i] }
Menggunakan fungsi rankByWordCount, anda boleh mengisih peta sebagai berikut:
wordFrequencies := map[string]int{
"hello": 10,
"foo": 20,
"bar": 20 ,
}
diisihPair := rankByWordCount(wordFrequencies)
untuk _, pasangan := julat diisihPair {
fmt.Println(pair.Key, pasangan.Nilai)
}
Output:
foo 20
bar 20
hello 10
Atas ialah kandungan terperinci Bagaimana untuk Isih Peta Go mengikut Nilainya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!