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차원 배열의 경우는 꽤나 당황을 금치 못했던것 같습니다.
하지만 계속 사용하다보면 익숙해져서 자유자재로 사용할 수 있을거라... 생각합니다
'언어 > Kotlin' 카테고리의 다른 글
코틀린의 반올림 방식 : 오사오입 (0) | 2023.06.14 |
---|---|
[Kotlin/코틀린] 여러 조건을 기준으로 정렬하기 (0) | 2023.05.21 |
자바의 StringBuilder 개행문자 삽입방법 - append(str + "\n") vs append(str).append("\n") (0) | 2023.02.01 |
[Kotlin] BigDecimal을 사용하여 매우 큰 수, 소숫점 처리하기 (0) | 2022.12.21 |
[Kotlin] Jsoup와 크롤링으로 백준 푼 문제 중 포스팅하지 않은 문제 추려내기 (0) | 2022.11.23 |