Kotlin JS sort 정렬 오름차순, 내림차순, 임의 순
Notepad96
·2020. 10. 9. 21:37
1. Sort(정렬)
kotlin은 다양한 sort 함수를 제공한다.
간단하게 분류를 해보면 우선 sort와 sortDescending 이 있다.
sort인 것은 오름차순 sortDescending 처럼 Descending이 붙으면 내림차순으로 정렬을 한다.
또한 sort와 sorted처럼 뒤에 ed가 붙는 것과 붙지 않는 것이 있다.
뒤에 -ed가 붙는 것은 정렬된 List 타입으로 반환해준다.
따라서 -ed가 붙는 sort를 사용해 주는 경우, 해당 리스트에 다시 초기화를 해주어야만 정렬된 리스트를 저장한다.
2. 코 드
환경 : 1.4.0 JS play.kotlinlang.org/
fun main() {
var num = arrayOf(5, 8, 2, 1, 9, 4);
println("=============================")
println("1. $num")
num.sort()
println("2. $num")
num.sort({a, b ->
b - a
})
println("3. $num")
var num2 = num.sorted() // return list
println("0. $num2")
num2 = num2.sortedDescending()
println("0. $num2")
println("=============================")
var str = arrayOf("ham", "abeb", "cama", "abcd")
println("sort before : ${str}")
str.sort({a, b ->
if(a[1] == b[1]) a.compareTo(b)
else a[1] - b[1]
})
println("sort after : ${str}")
str.sortBy({it[2]}) // target : index 2
println("sort after : ${str}")
}
- 그냥 sort를 사용하여 정렬을 하였을 시 오름차순으로 정렬을 한며
Descending이 붙는 sort를 호출하였을 시 내림차순으로 정렬을 해준다.
- sorted 처럼 뒤에 -ed가 붙는 정렬 함수는 정렬된 list를 반환해준다.
따라서 상단에 sort를 실행 한것과는 다르게 정렬된 list를 다시 초기화해주어야만 정렬된 형태의 리스트로 저장된다.
- 오름차순, 내림차순과 같이 단순한 방식이 아니라 임의의 순으로 정렬을 하고자 한다면
문자열 Array 정렬 시 보이는 것처럼 람다 형식으로 인자에 따라 정렬한다.
위 예시에서는 문자열 인덱스 1의 문자를 기준으로 오름차순 정렬하며
만약 인덱스 1의 있는 문자가 동일할 경우 문자열 기준으로 오름차순 정렬하도록 하였다.
3. 참 조
'Kotlin > Collections' 카테고리의 다른 글
Kotlin list for문 - index loop (0) | 2020.11.22 |
---|---|
Kotlin List, MutableList 추가, 삭제, 프로퍼티 (0) | 2020.11.22 |
Kotlin ArrayList<Int> vs. IntArray - 리스트, 배열 (0) | 2020.11.21 |
Kotlin sort 정렬 오름차순, 내림차순, 임의 순 (0) | 2020.10.11 |
Kotlin 변수 묶기 Pair, Triple (1) | 2020.10.08 |