달나라 노트

Kotlin - sorted, sortedDescending, sortedWith 본문

Kotlin

Kotlin - sorted, sortedDescending, sortedWith

CosmosProject 2021. 3. 16. 00:24
728x90
반응형

 

 

 

 

Original source = play.kotlinlang.org/byExample/01_introduction/01_Hello%20world

 

 

 

 

fun main() {
    var list_numbers = listOf(1, -1, 2, -2, 3, -3)

    var list_sorted = list_numbers.sorted()
    println(list_sorted)

    var list_sort_desc = list_numbers.sortedDescending()
    println(list_sort_desc)
}



-- Result
[-3, -2, -1, 1, 2, 3]
[3, 2, 1, -1, -2, -3]

sorted 함수는 list를 오름차순으로 정렬합니다.

sortedDescending 함수는 list를 내림차순으로 정렬합니다.

 

 

 

 

 

sorted는 기본적으로 숫자 기준 오름차순, 알파벳순 등으로 정렬을 합니다.

 

그런데 만약 문자의 길이순서대로 정렬하고싶다면 어떻게 해야할까요?

그때 sortedWith을 사용할 수 있습니다.

 

fun main() {
    val fruits = listOf("Melon", "Apple", "Banana", "Mango", "Strawberry", "Watermelon")

    println(fruits.sortedWith() {str1: String, str2:String -> str1.length - str2.length})
}



-- Result
[Melon, Apple, Mango, Banana, Strawberry, Watermelon]

sortedWith은 위처럼 lambda 표현식과 함께 사용할 수 있습니다.

sortedWith은 내가 원하는 기준으로 collection을 정렬할 수 있는 기능을 제공합니다.

이를 위해선 정렬의 기준이 되는 비교 기준을 명시해줘야 합니다.

 

위 예시에선 str1, str2 간의 길이 차이를 {} 안에 명시해주고있습니다.

즉, collection의 두 요소간의 길이 차이를 계산하고 그 차이대로 정렬하라는 뜻이죠.

 

 

 

 

 

 

 

728x90
반응형

'Kotlin' 카테고리의 다른 글

Kotlin - minOrNull, maxOrNull  (0) 2021.03.16
Kotlin - partition  (0) 2021.03.16
Kotlin - count  (0) 2021.03.16
Kotlin - first, last, firstOrNull, lastOrNull  (0) 2021.03.16
Kotlin - find, findLast  (0) 2021.03.15
Comments