Uknow's Lab.
article thumbnail
Published 2022. 2. 16. 00:24
[Kotlin] 배열 사용법 정리 언어/Kotlin

 

var arr1 = Array(3, { Array(3, {0}) })
var arr2 = arrayOf(arrayOf(1, 2, 3), arrayOf(4, 5, 6))

 

코틀린 배열의 첫 인상

 

Java를 주로 사용하던 저로써는 코틀린의 배열은 꽤 낯설었습니다.

Java에서는 배열을 생성할 때
int arr[] = new int[3]; 과 같이 어찌보면 간단하게 선언할 수 있는데,

코틀린의 경우 배열을 생성하는 방법도 여러가지 인데다가, 생성 방식 역시 독특함 그 자체라 느꼈습니다.

코틀린의 배열을 좀 더 자유롭고 능숙하게 다를 수 있도록 이 글을 작성하며 배열 사용법을 정리해보았습니다.

 

 

코틀린의 배열 선언 방법

 

1) arrayOf()

val arr:Array<Int> = arrayOf(1,2,3)
val arr2:Array<String> = arrayOf("test","test2")

//자료형은 생략 가능합니다
val arr = arrayOf(1,2,3)
val arr2 = arrayOf("test","test2")

 

생성과 동시에 초기화를 진행하고 싶을 경우,
arrayOf(value)를 통해 생성 및 초기화를 할 수 있습니다.

 

 

Null로 된 값을 생성하고 싶을 경우

val arr = arrayOfNulls<Int>(10)

위와 같이 작성할 경우 초기값이 null인 길이 10의 int형 배열을 생성할 수 있습니다.

 

 

2) Array()

val arr: Array<Int> = Array(3) { 0 }

위와 같이 특정 값을 넣음으로써 원하는 값으로 초기화 역시 가능합니다.

이 경우 arr에는 [0, 0, 0]로 초기화됩니다.

 

 

val arr: Array<Int> = Array(3) { i -> i }

Array(size) { i -> i }와 같이 람다식을 통해 생성할 수 있습니다.
위 코드와 같이 사용할 경우 arr에는 [0, 1, 2]값이 들어갑니다.

 

 

 

코틀린의 2차원 배열

 

코틀린의 2차원 배열 생성방법을 보고 저는 그만 기절하고 말았습니다.

 

var arr = Array<Array<Int>>(3){Array<Int>(3){ 0 } }

위와 같이 배열 안에 또 다른 배열을 넣음으로써 2차원 배열을 생성할 수 있었습니다.

 

 

var arr1 = Array(3, { Array(3, {0}) })
var arr2 = arrayOf(arrayOf(1, 2, 3), arrayOf(4, 5, 6))

위와 같은 방법으로도 2차원 배열을 선언할 수 있습니다.

당황한 저는 이곳저곳을 살펴봤지만
자바의 int arr[][] = new int[3][3];과 같은 간단한 문법은 어디에서도 찾을 수 없었습니다.

 

 

그렇다면, 3차원 배열은?

var arr = Array(10){Array(10){Array(10){0} } }

 

배열안에 배열안에 배열을 넣는 식으로 생성할 수 있었습니다.


코틀린을 써보면서, 자바와 다르게 깔끔한 문법이 마음에 들었는데, 2차원 배열의 경우는 꽤나 당황을 금치 못했던것 같습니다.
하지만 계속 사용하다보면 익숙해져서 자유자재로 사용할 수 있을거라... 생각합니다

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.