본문 바로가기
모바일/Kotlin

[Kotlin] 코틀린 배열

by drCode 2021. 3. 30.
728x90
반응형

안녕하세요

 

이번 포스팅은 코틀린에서 사용하는 배열에 대해 알아보도록 하겠습니다.

 

어떤 변수를 선언하는데 있어서 타입이 같고 용도도 비슷한 변수들을 여러개 선언해야하는 상황이 있다면

그러한 상황이라면 변수를 여러개 선언하는 것보다 배열을 사용하여 다루는 것이 편리할 것입니다.

 

var one : Int = 1
var two : Int = 2
var three : Int = 3

// ↑ 위와 같은 변수 선언보다는 아래와 같은 배열 선언이 더 편합니다
var numbers = arrayOf<Int>(1, 2, 3, 4, 5)

println(numbers is Array) // <<< 이 출력문은 numbers가 배열이 맞다면 True를 출력할 것 입니다.

 

또한 배열을 선언할 때, 타입을 지정하지 않고 배열을 선언할 수도 있습니다.

var group2 = arrayOf(1,2,3.5, "Hello")

 

배열에서의 요소 값에 접근할 때는 인덱스를 사용합니다.

인덱스(Index)란, 배열의 첫번째 값, 배열의 두번째 값.. 이러한 값들에 접근하기 위해 arr[0] 이런식으로 사용하는데

여기서 [0] 가 바로 인덱스입니다.

 

배열의 크기가 n이라고 할때, 배열은 0부터 시작해서 n-1까지의 요소가 존재하게 됩니다.

 

배열의 요소의 값을 받는 방법은 두 가지가 있습니다.

get을 이용하는 방법, 인덱스를 이용하여 값을 받는 방법

val test1 = group1.get(0)
val test2 = group1.get(4)

val test3 = group1[0]

 

배열의 요소의 값을 바꾸는 방법은 두 가지가 있습니다.

set을 이용하는 방법, 인덱스를 이용하여 값을 바꾸는 것입니다.

group1.set(0, 100)
println(group1.get(0))

group1[0] = 200
println(group1[0])

 

배열을 사용하다보면 배열의 크기를 항상 유념해야 합니다

자칫하다간  java.lang.ArrayIndexOutOfBoundsException 가 발생할 수 있기 때문입니다.

 

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

var number1 = array.get(100) /// IndexOutOfBoundsException 발생

 

배열의 범위는 처음 선언할 때 결정됩니다. 

 

배열을 만들 때 Array<String> 이런 방법 뿐만 아니라

아예 타입배열을 지정해서 쓸 수 있습니다.

 

val a1 = intArrayOf(1, 2, 3)
val a2 = charArrayOf('a', 'b', 'c') // char -> '' , string -> ""
val a3 = doubleArrayOf(1.2, 100.345)
val a4 = booleanArrayOf(true, false, true)

 

람다를 이용하여 배열을 선언하는 방법도 있습니다.

var a5 = Array(10, { 0 })
var a6 = Array(5, {1;2;3;4;5})
// 람다 내에서 값을 넣을 때는 세미콜론으로 값을 넣어줘야 한다.

Array(사이즈, 람다값으로 넣는 배열 요소들) 구조로 이루어지는데

 

배열 요소를 넣어줄 때는 콤마(,)를 넣으면 에러가 발생하고, 세미콜론(;)을 넣어줘야 에러가 발생하지 않는다.

 

728x90
반응형

댓글