Kotlin Array

배열

기본적인 배열을 생성하기 위해서는 arrayOf()나 Array() 생성자를 사용해 배열을 만든다. 빈 상태의 배열을 지정하는 경우 arrayOfNulls()를 사용

fun main() {
    //자료형 제한하지 않으면 혼합하여 삽입가능
    //또한 객체를 삽입하여 바로 생성 가능
    val arr = arrayOf(1,2,3,"four", true)

    println(arr.get(2)) // 3
    println(arr[2]) // 3
    println(arr.size)

    for (item in arr){
        print(item)
    }
    //[1, 2, 3, four, true]
    println(Arrays.toString(arr))

    arr.set(1,8)
    arr[1] = 8 //위 set과 같음
    println(Arrays.toString(arr))
}

배열의 여러가지 메소드

first()나 last()를 이용하면 첫 번째나 마지막 요소를 확인하거나 특정 요소의 인덱스, 요소 평균 값, 개수 등을 확인할 수 있습니다. 그 밖에 요소의 순서를 완전히 뒤집는 reversedArray(), reverse(), 요소를 합산할 수 있는 sum(), 주어진 요소를 채우는 fill() 등 다양한 메서드가 존재하므로 필요에 따라 사용하면 좋다.

  • 정수는 for루프가 빠름
  • 컬렉션을 사용할 경우 순환 메서드가 빠름 또한 메서드 체이닝을 통해 가독성높은 메소드 적용 가능

배열 정렬

정렬 기능은 Array에서 확장된 함수들을 이용할 것입니다. 먼저 sortedArray()와 sortedArrayDescending()을 사용해 정렬된 배열을 반환할 수 있습니다. 원본은 그대로 두고 정렬된 배열을 새로 할당할 때에 사용합니다. 만일 원본 배열에 대한 정렬을 진행하려면 sort() 혹은 sortDescending()를 사용

fun main() {
    val arr = arrayOf(8,3,2,6,3,1,2)

    val sortedArr = arr.sortedArray()
    println(Arrays.toString(sortedArr))

    val sortedArrDesc = arr.sortedArrayDescending()
    println(Arrays.toString(sortedArrDesc))

    arr.sort(1,3)
    println(Arrays.toString(arr))
}

좀 더 복잡한 형태인 데이터 클래스의 멤버에 따라 정렬할 수 있습니다. 이때는 마찬가지로 Array에서 확장된 sortBy( ) 함수를 이용하면 해당 멤버 변수에 따라 정렬가능