경험의 기록

코틀린의 컬렉션에서는 다양한 정렬 함수를 제공한다.

Mutable 타입 일경우 컬렉션의 수정이 가능하기 때문에 sort, sorted 함수 둘다 존재하며

sort는 리턴값 없이 컬렉션 자체를 정렬해준다.

data class Person(val name : String, val age : Int)

fun main(){
    var list = listOf(2,1,3,4)

    var list1 = list.reversed() // 순서 반대로
    var list2 = list.sorted() // 오름차순 정렬
    var list3 = list.sortedDescending() // 내림차순 정렬
    var list4 = list.shuffled() // 랜덤 정렬

    list1.forEach(){print("$it ")}
    println()
    list2.forEach(){print("$it ")}
    println()
    list3.forEach(){print("$it ")}
    println()
    list4.forEach(){print("$it ")}
    println()

    var personList = listOf(
        Person("Han",25),
        Person("Kim",19),
        Person("Lee",27),
        Person("Choi",25)
    )

    var personList1 = personList.sortedBy {it.age } // 조건부 오름차순 정렬
    var personList2 = personList.sortedByDescending {it.age } // 조건부 내림차순 정렬
    var personList3 = personList.sortedWith(compareBy({ it.age }, { it.name })) // 여러 조건으로 정렬
    // 클래스배열이 아닌 그냥 배열이면 it.first... 등으로 요소 접근

    personList1.forEach(){print("$it ")}
    println()
    personList2.forEach(){print("$it ")}
    println()
    personList3.forEach(){print("$it ")}
    println()

}


 

 

 

또한

arr.sortWith(compareBy { -it.length })

조건에 -를 붙여서 내림차순으로 정렬할 수 있다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading