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()
}