[Kotiln] List정렬

2022. 4. 27. 02:45ETC/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

 

Kotlin sort 정렬 오름차순, 내림차순, 임의 순

1. Sort(정렬) kotlin은 다양한 sort 함수를 제공하여 상황에 맞은 sort 함수를 사용해야 한다. 우선 간단하게 분류를 해보면 우선 sort와 sortDescending 이 있다. sort인 것은 오름차순 sortDescending ..

notepad96.tistory.com

 

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