본문 바로가기
Do it 코틀린 프로그래밍

코틀린 배열

by 차누감 2020. 8. 21.

코틀린에서 배열은 Array 클래스로 표현됩니다, 그 외에 여어 가지 묶음 데이터를 표현하는 컬렉션이 있습니다.

기본적인 배열 생성

    val numbers = arrayOf(4,5,6,7)  //  정수형으로 초기화된 배열
    val animals = arrayOf("Cat", "Dog", "Lion") //  문자열형으로 초기화된 배열

다차원 배열

    val array1 = arrayOf(1,2,3)
    val array2 = arrayOf(4,5,6)
    val array3 = arrayOf(7,8,9)
    
    val arr2d = arrayOf(array1, array2, array3)

arr2d 배열 size = 3 x 3

1 2 3
4 5 6
7 8 9
val arr2d = arrayOf(arrayOf(1,2,3), arrayOf(4,5,6), arrayOf(7,8,9))

// 2차원 배열 출력
 for(arr in arr2d){
        for(e in arr){
            print(e)
        }
        println()
    }
    
    //결과
    //123
    //456
    //789

배열에 여러 가지 자료형 혼합하기

val mixArr = arrayOf(4,5,7,3,"Chike",false) //  정수, 문자열, Boolean 혼합

 

만일 배열에서 특정 자료형을 제한하려면

arrayOf<자료형>() 또는

val arr = arrayOf<Int>(1,2,3,4)

자료형 + ArrayOf() 형태로 나타낼 수 있습니다.

val arr = intArrayOf(1,2,3,4)

 

배열 선언 및 사용 예제

fun main(){
    val arr = intArrayOf(1,2,3,4,5)

    println("arr: ${Arrays.toString(arr)}") //  Arrays.toString()은 배열의 내용을 문자열로 변환  //  arr: [1, 2, 3, 4, 5]
    println("size: ${arr.size}")    //  size는 배열의 크기                                      //  size: 5
    println("sum(): ${arr.sum()}")  //  sum() 배열의 합 계산                                    //  sum(): 15

    //게터에 의한 접근과 대괄호 연산자 표기법
    println(arr.get(2)) //  3
    println(arr[2]) //  3

    //세터에 의한 접근과 대괄호 연산자 표기법
    arr.set(2,7) //  2번 인덱스 위치에 7로 교체
    arr[2]=7 //  2번 인덱스 위치에 7로 교체

    for (i in 0..arr.size-1){
        println("arr[$i] = ${arr[i]}")
    }
    //for문 결과
    //arr[0] = 1
    //arr[1] = 2
    //arr[2] = 7
    //arr[3] = 4
    //arr[4] = 5
}

개수가 많은 배열 선언

var a = arrayOfNulls <Int>(100)	//	100개의 null로 채워진 정수 배열
var a = Array(100,{0})	//	0으로 채워진 배열

 

배열 요소 추가하고 잘라내기

arr.plus(value) 요소 추가 후 새 배열 생성

arr.sliceArray(0..2) 범위 만큼 잘라내 새 배열 생성

fun main(){
    val arr1 = intArrayOf(1,2,3,4,5)    //  5개로 고정된 배열

    val arr2 = arr1.plus(6)     //  하나의 요소를 추가한 새 배열 생성
    println(Arrays.toString(arr2))      //  [1, 2, 3, 4, 5, 6]

    val arr3 = arr1.sliceArray(0..2)    //  필요한 범위를 잘라내 새 배열 생성
    println(Arrays.toString(arr3))              //  [1, 2, 3]
}

 

배열 관련 API

    arr.first()     //  첫 번째 요소 확인
    arr.last()      //  마지막 요소 확인
    arr.indexOf(3)  //  요소 3의 인덱스 출력
    arr.average()   //  배열의 평균 값 출력
    arr.count()     //  요소 개수 세기
    arr.sortedArray()// 오름차순 정렬
    arr.sortedArrayDescending()//   내림차순 정렬
    arr.sort(1,3)      //  sort(fromIndex, toIndex)
    arr.sorted()        //  List로 반환
    arr.sortedDescending()//    List로 반환
    arr.filter {  }     //  배열 필터링하기
    arr.minBy {  }  // 배열 가장 작은 값 골라내기
    arr.maxBy {  }  // 배열 가장 큰 값 골라내기

 

'Do it 코틀린 프로그래밍' 카테고리의 다른 글

코틀린 컬렉션(1) - 기본 구조  (1) 2020.08.23
코틀린 문자열  (0) 2020.08.22
코틀린 제네릭  (0) 2020.08.20
코틀린 상속과 다형성  (2) 2020.08.19
코틀린 클래스와 객체의 정의  (0) 2020.08.18

댓글