> 백엔드 개발 > Golang > Go 맵을 정수 값을 기준으로 내림차순으로 정렬하려면 어떻게 해야 합니까?

Go 맵을 정수 값을 기준으로 내림차순으로 정렬하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-10 13:56:15
원래의
173명이 탐색했습니다.

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

Go에서 맵 값 정렬

Go에서 키가 문자열 유형이고 값이 int 유형인 주어진 맵은 값을 기준으로 내림차순으로 정렬될 수 있습니다. 주문하세요.

문제 설명:

다음을 고려하세요. map:

map[string]int{"hello": 10, "foo": 20, "bar": 20}
로그인 후 복사

목표는 정렬된 키-값 쌍을 다음과 같이 인쇄하는 것입니다.

foo, 20
bar, 20
hello, 10
로그인 후 복사

구현:

이 정렬을 달성하려면 Go 정렬 인터페이스가 필요합니다. 이는 Len(), Less() 및 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] }
로그인 후 복사

결론:

정렬 인터페이스를 구현하고 sort.Reverse 함수를 활용하여, Go에서는 지도를 해당 값에 따라 효과적으로 정렬할 수 있으므로 다양한 정렬 시나리오가 가능합니다.

위 내용은 Go 맵을 정수 값을 기준으로 내림차순으로 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿