> 백엔드 개발 > Golang > 정수 값으로 Go 맵을 정렬하는 방법은 무엇입니까?

정수 값으로 Go 맵을 정렬하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-30 07:28:09
원래의
727명이 탐색했습니다.

How to Sort a Go Map by its Integer Values?

Go에서 값으로 지도 정렬

문자열 키와 정수 값이 있는 지도가 주어지면 지도를 정렬해야 할 수도 있습니다. 특정 순서로 값을 기준으로 합니다. 이 튜토리얼에서는 이러한 일반적인 프로그래밍 작업에 대한 솔루션을 간략하게 설명합니다.

솔루션

Go에서 값을 기준으로 맵을 정렬하는 한 가지 접근 방식은 다음을 구현하는 사용자 정의 데이터 구조를 만드는 것입니다. 정렬.인터페이스. 이 인터페이스는 Go의 정렬 알고리즘에서 요소 순서를 결정하는 데 사용되는 Len, Less 및 Swap 메서드를 정의합니다.

다음은 구현을 보여주는 예제 코드 블록입니다.

// RankByWordCount sorts a map[string]int by its values in descending order.
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
}

// Pair represents a key-value pair.
type Pair struct {
  Key string
  Value int
}

// PairList is a list of Pair.
type PairList []Pair

// Len returns the length of the PairList.
func (p PairList) Len() int { return len(p) }

// Less compares two Pair and returns true if the first one should be
// placed after the second one in the sorted list.
func (p PairList) Less(i, j int) bool { return p[i].Value < p[j].Value }

// Swap swaps two elements in the PairList.
func (p PairList) Swap(i, j int){ p[i], p[j] = p[j], p[i] }
로그인 후 복사

제공된 코드에서 RankByWordCount는 map[string]int를 입력으로 사용하고 다음을 기준으로 내림차순으로 정렬된 키-값 쌍을 포함하는 pairList를 생성합니다. 가치. Go에 내장된 정렬 알고리즘을 활용하여 정렬을 수행합니다.

이 기능을 사용하려면 지도를 입력으로 제공하고 정렬된 키-값 쌍의 pairList를 얻을 수 있습니다.

기억하세요 이러한 정렬 기능을 효과적으로 사용하려면 코드에서 정렬 패키지를 가져오세요.

위 내용은 정수 값으로 Go 맵을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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