Mengisih Peta mengikut Nilai dalam Go
Memandangkan peta dengan kunci rentetan dan nilai integer, kami mungkin menghadapi keperluan untuk mengisih peta mengikut nilainya dalam susunan tertentu. Tutorial ini menggariskan penyelesaian kepada tugas pengaturcaraan biasa ini.
Penyelesaian
Satu pendekatan untuk mengisih peta mengikut nilai dalam Go ialah mencipta struktur data tersuai yang melaksanakan sort.Antaramuka. Antara muka ini mentakrifkan kaedah Len, Less dan Swap, yang digunakan oleh algoritma pengisihan Go untuk menentukan susunan elemen.
Berikut ialah contoh blok kod yang menunjukkan pelaksanaan:
// 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] }
Dalam kod yang disediakan, rankByWordCount mengambil peta[rentetan]int sebagai input dan mencipta PairList yang mengandungi pasangan nilai kunci yang diisih dalam tertib menurun berdasarkan nilai. Ia menggunakan algoritma pengisihan terbina dalam Go untuk melaksanakan pengisihan.
Untuk menggunakan fungsi ini, anda boleh memberikan peta anda sebagai input dan mendapatkan PairList pasangan nilai kunci yang diisih.
Ingat untuk mengimport pakej isihan dalam kod anda untuk menggunakan fungsi isihan ini dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Isih Peta Go mengikut Nilai Integernya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!