티스토리 뷰
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
TAG
- 봄
- Arduino101
- 민성이
- 꽃전시회
- 중문해수욕장
- 덴파레
- 풍림콘도
- 규슈
- 휴애리
- 뽀로로
- 섭지코지
- 에코랜드
- 꽃
- 유아동요
- 한화우림
- 동탄
- 나현이
- shift register
- 74HC565
- 제주도
- L293D
- 렌즈
- ble
- 아소
- 함덕
- Genuino101
- Android Studio
- clix
- 까꿍이
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함