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
DDDasal
2024-12-15 15:16:20791semak imbas

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] }

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!

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