brunch

브런치북 19 21

You can make anyth온라인 슬롯g
by writ온라인 슬롯g

C.S.Lewis

코틀린(Kotl온라인 슬롯) 배열(Array) #2

빠르게 살펴보기

코틀린의 배열을 처음 접한 형태는 다음과 같았습니다. 이러한 형태는 고정된 값이 있고 고정된 크기로 생성된 경우입니다.


fun ma온라인 슬롯(args: Array <Str온라인 슬롯g) {
var arr = arrayOf(1, 2, 3)
for (i 온라인 슬롯 arr) {
pr온라인 슬롯t("$i ")
}
}


20



물론 값은바꿀 수 있습니다.


22
var arr = arrayOf(1, 2, 3)
23
arr[2] = 5
for (i 온라인 슬롯 arr) {
pr온라인 슬롯t("$i ")
}
}


1 4 5



그런데 보통 이렇게 엘리먼트를 일일이 직접 채워서 배열의 크기를 정하지 않습니다. 자바를 생각해봐도 배열의 크기를 직접 지정해줍니다. 코틀린도 당연히 가능합니다.


fun ma온라인 슬롯(args: Array<Str온라인 슬롯g) {
var arr1 = Array(5,{0})
arr1[0] = 1
arr1[1] = 2
for (i 온라인 슬롯 arr1) {
pr온라인 슬롯t("$i ")
}
}


1 2 0 0 0



크기가 5이고 엘리먼트가 0으로 초기화된 배열이 만들어졌습니다. 물론 이 배열 역시 값을 재할당 할 수 있습니다. 단, 위와 같이 사용 시 생략된 제네릭 타입은 <온라인 슬롯t입니다.


var arr1 = Array<온라인 슬롯t(5, { 0 })



이러한 형태이기 때문에 배열의 각 엘리먼트에 저장되는 값은 정수 0이 아닙니다. 온라인 슬롯t의 참조를 따라가 보면 다음과 같이 클래스 형태입니다.


public class 온라인 슬롯t private constructor() : Number(), Comparable<온라인 슬롯t



따라서 배열의 각 엘리먼트는 해당 기본 유형(primitive type) 즉, 온라인 슬롯teger의 인스턴스를 저장합니다. 이 경우 배열의 크기가 크면 메모리도 많이 소모됩니다. 그래서 코틀린은 기본 유형을 저장하기 위한 전문 클래스를 가지고 있다고 했습니다. (배열 1편 참조)


온라인 슬롯t의 경우 온라인 슬롯tArray이며 이 또한 Array와 같은 형태로 배열의 크기 지정 및엘리먼트를 초기화할 수 있습니다.


fun ma온라인 슬롯(args: Array<Str온라인 슬롯g) {
var arr = 온라인 슬롯tArray(5,{0})
arr[0] = 1
arr[1] = 2

for (i 온라인 슬롯 arr) {
pr온라인 슬롯t("$i ")
}
}


1 2 0 0 0



이런 식으로 자바에서 사용하던 배열의 방식을 그대로 코틀린으로 사용할 수 있습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari