Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Isih Peta Integer Rentetan mengikut Nilai dalam Susunan Menurun dalam Go?

Bagaimana untuk Isih Peta Integer Rentetan mengikut Nilai dalam Susunan Menurun dalam Go?

DDD
Lepaskan: 2024-12-15 15:16:20
asal
739 orang telah melayarinya

How to Sort a String-Integer Map by Value in Descending Order in 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] }
Salin selepas log masuk

Contohnya, menggunakan peta yang diberikan:

m := map[string]int{"hello": 10, "foo": 20, "bar": 20}
Salin selepas log masuk

Output yang diisih ialah:

foo, 20
bar, 20
hello, 10
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan