Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Isih Peta Go mengikut Nilainya?

Bagaimana untuk Isih Peta Go mengikut Nilainya?

Patricia Arquette
Patricia Arquetteasal
2024-12-20 07:56:13182semak imbas

How to Sort a Go Map by its Values?

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>
<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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn