PS문제를 하나씩 풀다보니 공부가 필요한 문법에 대해서 정리한 글입니다.
배열(Array)은 같은 유형 또는 하위 유형의 고정된 수의 값을 보유하고 있는 데이터 구조이다.
저수준의 요구사항에 대해 사용하게 된다.
그래서 배열은 컬렉션에 비해
- 컬렉션은 읽기 전용으로 설정할 수 있으므로 제어력이 높아지고
명확한 의도가 담긴 견고한 코드를 작성할 수 있다.- 컬렉션에서 요소를 추가하거나 제거하는 것은 쉽지만 배열은 크기가 고정되어 있다.
따라서 배열에서 요소를 추가하거나 제거하는 유일한 방법은 새 배열을 만드는 것이다.- 컬렉션이 구조적으로 동일한지 확인하려면 등식 연산자()를 사용할 수 있다.
하지만 배열에서는 사용할 수 없다.
따라서 간단한 코드에 대해 배열을 사용하게 된다.
arrayOf()에서는 함수를 사용하여 항목에 값을 전달한다.
val simpleArray = arrayOf(1, 2, 3)
println(simpleArray.joinToString())
// 1, 2, 3
arrayOfNulls()는 함수를 사용하여 주어진 크기의 요소로 채워진 배열을 생성한다.
val nullArray: Array<Int?> = arrayOfNulls(3)
println(nullArray.joinToString())
// null, null, null
emptyArray()는 빈 배열을 생성한다.
var exampleArray = emptyArray<String>()
만약 배열 요소를 0으로 초기화 하는 IntArray를 생성하고 싶다면
val initArray = Array<Int>(3) { 0 }
println(initArray.joinToString())
// 0, 0, 0
또한 인덱스에 따라 배열 요소의 값을 반환하는 함수를 사용할 수 있다.
val asc = Array(5) { i -> (i * i).toString() }
asc.forEach { print(it) }
// 014916