티스토리 뷰

Kotlin에서 MutableMap을 정렬하기 위해서는 toSortedMap 함수를 사용하는데 이 경우 key를 기준으로 정렬하게 된다.
value를 기준으로 정렬하기 위해서는 보다 복잡한 단계를 거쳐야 한다.
아래 코드가 하나의 예다.

var map = mutableMapOf<int,int>()
var sortedByValue = map.toList().sortedWith(compareBy({it.second})).toMap()

먼저 MutableMap을 List로 변환한다. 이 때 List 항목은 Pair<k, v>로 구성된다.
다음 sortedWith 함수를 이용하여 정렬한다.
sortedWith 함수의 인자로 Comparator를 생성하여 전달하는데 compareBy 함수를 이용하여 Pair 의 second 요소를 정렬 기준으로 선택한다.
compareBy 함수는 오름차순 정렬이 되며 내림차순 정렬을 원할 경우 compareByDescending 함수를 사용하면 된다.
정렬된 List를 다시 Map으로 변환하면 된다.
List 관련하여 정렬 함수가 여러가지가 있는데 아래 표와 같이 정리해본다.

sort함수를 호출한 객체 자체의 값을 정렬한다.
sorted정렬한 값을 return한다. (별도의 변수에 저장)
sortBy/sortedBy정렬 기준을 selector 함수로 지정한다.
sortWith/sortedWith정렬 기준을 comparator로 지정한다.

 

'개발 > Kotlin' 카테고리의 다른 글

배열 초기화 선언  (0) 2019.05.07
Comparator 활용 예제  (0) 2019.05.05
무지의 먹방 라이브  (0) 2018.10.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함