티스토리 뷰

Kotlin

코틀린 배열 Kotlin Array

IT Knowledge Share 2021. 7. 6. 19:00
반응형

배열은 여러 개의 요소가 하나의 그룹에 들어있는 것을 의미합니다.

 

코틀린에서 배열을 사용할 때는 Int 타입만 명시가 가능하며, arrayOf<Int>( ) 이런식으로 사용합니다.

 

arrayOf( ):Int <- 이런식으로 Int 타입을 명시하지 않으니 주의하시기 바랍니다.

 

1. 타입을 명시하지 않고 배열 생성하기

var group = arrayOf(1, 2, 3, 4, 5)

arrayOf 메소드를 사용해서 배열을 만들 수 있는데, 타입을 명시하지 않는다고 해서 자동으로 타입을 인식하는 것은 아닙니다.

var group = arrayOf(1, 2.5, "Hi", 4, 5)

배열 요소에 string, float 등 기타 타입을 섞어서 배열을 만들 수 있으나 이는 추천하지 않습니다.

반응형

 

2. 타입을 명시하여 배열 생성하기

var group = arrayOf<Int>(1, 2, 3, 4, 5)

타입을 명시하는 경우, 꺽쇠 안에 Int 타입이라고 적을 수 있습니다. Int 타입만 가능한 것으로 알고 있습니다.

 

 

3. 여러가지 배열 메소드의 종류

 

Int만 타입으로 명시할 수 있다면, 다른 타입은 어떻게 처리할까요?

각 타입에 맞는 arrayOf가 준비되어 있습니다.

    val a1 = intArrayOf(1, 2, 3)
    val a2 = charArrayOf('b', 'c')
    val a3 = doubleArrayOf(1.2, 100.555) //string은 쌍따옴표
    val a4 = booleanArrayOf(true, false, true)

a1~a4 까지 Int, Char, Double, Boolean 타입의 arrayOf 메소드를 사용한 경우입니다. 

 

4. 배열의 값을 꺼내는 방법

 

배열에서 값을 꺼낼 때는 두 가지 방법이 있는데, 하나는 get 메소드를 사용하는 것이고, 다른 한 가지는 인덱스를 바로 사용하는 것입니다.

 

예제를 살펴봅니다.

    //배열의 값을 꺼내는 방법1. get 사용
    //index란 0부터 순서대로 시작하는 배열의 값. [1,2,3]에서 1은 인덱스 0번째
    
    val test = group1.get(0)
    val test1 = group1.get(4)
    println(test)
    println(test1)

    //배열의 값을 꺼내는 방법2. 인덱스 바로 사용
    
    val test3 = group1[2]
    println(test3)

* 만약 범위에 벗어나는 인덱스를 가져오면 ArrayIndexOutOfBoundsException 에러가 납니다. 

 

 

5. 배열의 값을 바꾸는 방법

 

배열의 값을 바꾸는 방법 또한 두 가지가 있는데, 하나는 set 메소드를 사용하거나 인덱스에 다른 값을 바로 할당해주면 됩니다. set 메소드를 사용할때, 첫 번째 인자로는 바꾸려는 인덱스 번호와 두 번째 인자로는 바꾸려는 값을 넣어줍니다.

    //배열의 값을 바꾸는 방법1
    
    group1.set(0, 100)
    println(group1[0])

    //배열의 값을 바꾸는 방법2
    
    group1[0] = 200
    println(group1[0])

 

 

6. 람다를 사용하여 배열 만들기

 

람다를 활용하여 배열을 생성할 수 있습니다. 람다 사용 시 첫 번째 인자로는 배열의 사이즈가 나오며, 두 번째 인자로는 사이즈에 맞는 배열의 값을 넣게 됩니다.

배열의 값을 넣을 때는 중괄호를 사용하고, 콤마가 아닌 세미콜론으로 구분합니다.

    var a5 = Array(10, {0}) //사이즈가 10인데 0하나면 적으면 모든 배열값이 0입니다.

    var a6 = Array(5, {1;2;3;4;5})

 

 

반응형

'Kotlin' 카테고리의 다른 글

코틀린 반복문 Kotlin Iterators  (0) 2021.07.06
코틀린 컬렉션 Kotlin Collections  (0) 2021.07.06
is, in 연산자  (0) 2021.07.06
엘비스 연산자 Elvis Operator  (0) 2021.07.05
코틀린 제어문 2편 Control Flows  (0) 2021.07.05
댓글