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

Notepad96

·

2020. 10. 9. 21:37

300x250

 

 

 

1. Sort(정렬)

 

kotlin은 다양한 sort 함수를 제공한다.

 

 

간단하게 분류를 해보면 우선 sortsortDescending 이 있다.

 

sort인 것은 오름차순 sortDescending 처럼 Descending이 붙으면 내림차순으로 정렬을 한다.

 

 

 

또한 sortsorted처럼 뒤에 ed가 붙는 것과 붙지 않는 것이 있다.

 

뒤에 -ed가 붙는 것은 정렬된 List 타입으로 반환해준다. 

 

 

 

따라서 -ed가 붙는 sort를 사용해 주는 경우, 해당 리스트에 다시 초기화를 해주어야만 정렬된 리스트를 저장한다.

 

 

 

 

 


2. 코 드

환경 : 1.4.0 JS  play.kotlinlang.org/

fun main() {
    var num = arrayOf(5, 8, 2, 1, 9, 4);
    
    println("=============================")
    println("1. $num")
    
    num.sort()
    println("2. $num")
    
    num.sort({a, b ->
        b - a
    })
    println("3. $num")
    
    var num2 = num.sorted()	// return list
    println("0. $num2")
    num2 = num2.sortedDescending()
    println("0. $num2")
    
    println("=============================")
    var str = arrayOf("ham", "abeb", "cama", "abcd")
    
    println("sort before : ${str}")
    str.sort({a, b ->
        if(a[1] == b[1]) a.compareTo(b)
        else a[1] - b[1]
    })
    println("sort after  : ${str}")
    
    str.sortBy({it[2]})	// target : index 2
    println("sort after  : ${str}")
}

 

결과

 

- 그냥 sort를 사용하여 정렬을 하였을 시 오름차순으로 정렬을 한며

 

Descending이 붙는 sort를 호출하였을 시 내림차순으로 정렬을 해준다.

 

 

 

 

- sorted 처럼 뒤에 -ed가 붙는 정렬 함수는 정렬된 list를 반환해준다.

 

따라서 상단에 sort를 실행 한것과는 다르게 정렬된 list를 다시 초기화해주어야만 정렬된 형태의 리스트로 저장된다.

 

 

 

 

- 오름차순, 내림차순과 같이 단순한 방식이 아니라 임의의 순으로 정렬을 하고자 한다면

 

문자열 Array 정렬 시 보이는 것처럼 람다 형식으로 인자에 따라 정렬한다.

 

 

 

위 예시에서는 문자열 인덱스 1의 문자를 기준으로 오름차순 정렬하며

 

만약 인덱스 1의 있는 문자가 동일할 경우 문자열 기준으로 오름차순 정렬하도록 하였다.

 

 

 
 
 

3. 참 조

 
 

sort - Kotlin Programming Language

 

kotlinlang.org

 
 
 
300x250