Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Isih Peta Integer Rentetan mengikut Nilai dalam Susunan Menurun dalam Go?
Mengisih Peta mengikut Nilainya
Memandangkan peta rentetan kepada integer, adalah wajar untuk mengisih peta mengikut nilainya dalam menurun pesanan.
Penyelesaian:
Melaksanakan antara muka pengisihan tersuai boleh mencapai fungsi ini. Kod berikut menyediakan semua fungsi yang diperlukan untuk mengisih peta mengikut nilainya:
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] }
Contohnya, menggunakan peta yang diberikan:
m := map[string]int{"hello": 10, "foo": 20, "bar": 20}
Output yang diisih ialah:
foo, 20 bar, 20 hello, 10
Atas ialah kandungan terperinci Bagaimana untuk Isih Peta Integer Rentetan mengikut Nilai dalam Susunan Menurun dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!