Kotlin

[Kotlin] 배열(Array)

KyungMin08 2024. 11. 14. 21:12
728x90

개요

처음 Kotlin의 배열을 접했을 때 Java에 너무 익숙한 나머지 Kotlin에 배열이 좀 어려워보였다.

Java는 위와 같이 배열을 선언할 수 있었는데 Kotlin은 배열을 선언하는 방법이 다양해서 순간 당황했었다.

하지만 이건 익숙함의 문제라 넘기고 배열(Array)에 대해서 설명해보겠다.

배열

배열(Array)은 동일한 자료형/타입을 가진 데이터들을 나열한 구조이다.

위 그림에서 array는 정수형 데이터 1부터 6까지 저장하고 있다. 우리는 인덱스(index)를 사용해서 값에 접근할 수 있다. 인덱스(index)를 사용할때는 0부터 시작한다. (예: array[1]은 2를 반환한다.)


배열 선언

Kotlin에서 배열(Array)을 선언하는데는 크게 3가지 방법으로 분류된다. arrayOf(), (자료형)ArrayOf(), Array() 등이 있다. 각각 살펴보며 설명하겠다.

 

1. arrayOf()

배열을 선언하는 가장 기본적인 방법으로 자료형은 생략 가능하며, 항목의 수에 따라 자동으로 크기가 결정된다. 또한 null 값은 포함되지 않는다.

위 코드에서 array1의 배열에 크기는 3이다. 왜냐하면 arrayOf()는 항목의 수에 따라 자동으로 크기가 결정된다고 했으니까.

'나는 선언과 동시에 null 값까지 포함시키고 싶어!'라고 한다면 arrayOfNulls()를 사용하면 된다. 해당 크기에 null이 채워져있을 것이다.

비어있는 배열을 만들고 싶으면 emptyArray()를 사용하면 된다. emptyArray.isEmpty()라고 확인해보면 참(true)이 나온다.(비어있다는 뜻)

 

2. (자료형)ArrayOf()

Kotlin에는 기본 데이터 유형의 배열을 생성하는 팩터리 함수가 있다. (자료형을 굳이 선언하지 않아도 원하는 자료형의 값만 저장할 수 있게 팩터리 함수를 지원해준다)

var 배열이름: (자료형)Array = (자료형)ArrayOf(값1, 값2, 값3)

해당 자료형은 생략 가능하며 null 값은 포함하지 않는다.

자료형 설명
IntArray Int 값만 저장할 수 있다. var arr: IntArray = intArrayOf(값1, 값2)
CharArray Char 값만 저장할 수 있다. var arr: CharArray = charArrayOf(값1, 값2)
DoubleArray Double 값만 저장할 수 있다. var arr: DoubleArray = doubleArrayOf(값1, 값2)
BooleanArray Boolean 값만 저장할 수 있다. var arr: BooleanArray = booleanArrayOf(값1, 값2)
ByteArray Byte 값만 저장할 수 있다. var arr: ByteArray = byteArrayOf(값1, 값2)
ShortArray Short 값만 저장할 수 있다. var arr: ShortArray = shortArrayOf(값1, 값2)

위와 같이 여러가지 팩터리 함수가 있다.

기본 자료형만 가능하다. 문자열을 저장하고 싶은 때는 문자열을 저장하는 함수는 없어 arrayOf()를 사용해 저장한다.

 

3. Array()

Array()는 (자료형)ArrayOf()와 비슷하지만 약간 다르다.

var 배열이름: Array<자료형> = Array<자료형>(크기) { 초기값 }

Array()는 선언과 동시에 크기초기값을 정할 수 있다. 마찬가지로 자료형은 생략 가능하며 기본적으로 null 값은 저장할 수 없다.

위 코드를 보며 해석해보자.

* 첫번째 배열의 크기는 10이며 0으로 초기화하고 있다. 여기서 0을 초기값으로 저장했는데 이건 0을 해당 크기만큼 채우겠다는 의미이다.

 

* 두번째 배열의 크기는 8이며 초기값으로 null을 저장하고 있다. 기본적으로 null 값은 저장하지 못하는데 자료형을 nullable하게 선언했기 때문에 가능하다. 이것도 마찬가지로 null을 해당 크기만큼 채우겠다는 의미이다.

 

* 세번째 배열의 크기는 8이며 람다 식으로 값을 저장하고 있다. 이 경우엔 0 ~ 7까지 저장하겠다는 의미가 된다. 하지만 일일이 값을 저장하려면 arrayOf()를 사용하는게 더 좋다.


배열에 접근

배열에 접근하는 방법은 크게 3가지가 있다.

 

1. 배열[index]

접근하고자하는 배열에 index를 붙여 접근이 가능하다.

 

2. get(index)

get(index)함수는 해당 index의 값을 가져온다.

 

3. set(index, 값)

변경하고자하는 index의 특정 요소를 변경시킨다.


배열 관련 연산자 또는 함수

1. in 연산자

if-else와 함께 in 연산자를 사용하여 배열에 요소가 있는지 확인할 수 있다. in 연산자는 해당 요소가 배열에 존재하는 지 판단할 때 사용한다.

 

2. 빈 배열인지 확인

isEmpty() 함수를 사용하여 빈 배열인지 여부를 확인할 수 있다. 배열이 비어 있으면 true를 반환한다.

해당 배열이 빈 배열인지 판단할 때 사용한다.

 

3. 배열의 크기 확인

Kotlin은 길이를 반환하는 size라는 배열 속성을 제공한다. 주로 해당 배열의 크기를 확인하고 싶을 때 사용한다.


잘못된 부분이나 부족한 부분이 있을 수 있습니다. 댓글로 남겨주시면 감사하겠습니다.

 

728x90