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 중국어 웹사이트의 기타 관련 기사를 참조하세요!