값에 따라 맵 정렬
문자열의 맵이 정수로 구성된 경우 값을 기준으로 내림차순으로 맵을 정렬하는 것이 바람직합니다. 주문.
해결책:
사용자 정의 정렬 인터페이스를 구현하면 이 기능을 구현할 수 있습니다. 다음 코드는 값을 기준으로 지도를 정렬하는 데 필요한 모든 기능을 제공합니다.
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] }
예를 들어, 주어진 지도를 사용하면
m := map[string]int{"hello": 10, "foo": 20, "bar": 20}
정렬된 출력은 다음과 같습니다.
foo, 20 bar, 20 hello, 10
위 내용은 Go에서 문자열-정수 맵을 내림차순으로 값별로 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!