Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Isih Peta Go mengikut Nilai Integernya dalam Tertib Menurun?

Bagaimanakah Saya Boleh Isih Peta Go mengikut Nilai Integernya dalam Tertib Menurun?

Susan Sarandon
Lepaskan: 2024-12-10 13:56:15
asal
173 orang telah melayarinya

How Can I Sort a Go Map by Its Integer Values in Descending Order?

Isih Nilai Peta dalam Go

Dalam Go, peta yang diberikan di mana kunci adalah jenis rentetan dan nilai adalah jenis int boleh diisih berdasarkan nilainya dalam menurun pesanan.

Pernyataan Masalah:

Pertimbangkan perkara berikut peta:

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

Matlamatnya adalah untuk mencetak pasangan nilai kunci yang diisih sebagai:

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

Pelaksanaan:

Untuk mencapai pengisihan ini, pelaksanaan Go sort antara muka adalah perlu. Ini dilakukan dengan mentakrifkan fungsi Len(), Less(), dan Swap():

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

Kesimpulan:

Dengan melaksanakan antara muka isihan dan memanfaatkan jenis.Fungsi songsang, peta boleh diisih dengan berkesan mengikut nilainya dalam Go, membolehkan pelbagai senario pengisihan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Peta Go mengikut Nilai Integernya dalam Tertib Menurun?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan