[Kotiln] List정렬
2022. 4. 27. 02:45ㆍETC/Kotlin
728x90
반응형
Sort(정렬)
sort 오름차순 / sortDescending처럼 Descending이 붙으면 내림차순
뒤에 -ed(sorted)가 붙는 것은 정렬된 List타입으로 반환
따라서 -ed가 붙는 sort를 사용해주는 경우에는 해당 리스트에 다시 초기화를 해주어야 정렬된 리스트를 저장
MutableList타입일 경우
- sort의 경우, 해당 MutableList를 정렬
- sorted의 경우, 정렬된 List 타입을 반환하므로 이를 다시 저장해주어야 함
package com.example.solution
fun main() {
println("------1--------")
val ml = mutableListOf(5, 4, 2, 1, 6, 3)
println(ml)
//오른차순 정렬
ml.sort()
println(ml)
println("------2--------")
val ml2 = mutableListOf(5, 4, 2, 1, 6, 3)
//오름차순으로 정렬된 List반환
val sortml2 = ml2.sorted().toMutableList()
println(sortml2)
//내림차순 정렬
sortml2.sortDescending()
println(sortml2)
println("------3--------")
val ml3 = mutableListOf(2 to "abc", 4 to "abc", 3 to "qwe", 1 to "zwr")
println(ml3)
//첫번째를 기준으로 오름차순
ml3.sortBy { it.first }
println(ml3)
//첫번째를 기준으로 내림차순
ml3.sortByDescending { it.first }
println(ml3)
//두번째를 기준으로 내림차순
ml3.sortByDescending { it.second }
println(ml3)
println("------4--------")
// 우선 second 기준으로 오름차순, 만약 second가 동일하다면 first로 내림차순
// -부호가 내림차순
val ml4 = ml3.sortedWith(
compareBy({ it.second }, { -it.first })
)
println(ml4)
val ml44 = ml3.sortedWith(
compareBy({ it.second }, { it.first })
)
println(ml44)
println("------5--------")
//첫째자리수로 내림차순
val ml5 = mutableListOf("1", "32", "23", "4", "5")
val ml6 = ml5.sortedWith(Comparator{a, b -> (b+a).compareTo(a+b)})
println(ml5)
println(ml6)
val ml7 = ml5.sortedWith(Comparator{a, b -> -(b+a).compareTo(a+b)})
println(ml7)
}
참조
https://notepad96.tistory.com/entry/Kotlin-8
728x90
반응형
'ETC > Kotlin' 카테고리의 다른 글
[Kotiln] 작은수 큰수비교 coerceAtLeast, coerceAtMost (0) | 2022.04.28 |
---|---|
[Kotiln] List추출 slice(), take() (0) | 2022.04.28 |
[Kotiln] Map정렬 (0) | 2022.04.27 |
[Kotiln] List&Map (0) | 2022.04.26 |
[Kotiln] 해시 (0) | 2022.04.25 |