코틀린/순수 코틀린
코틀린 - 배열(Array)
Tracoding
2023. 3. 21. 21:25
var intArray = IntArray(3) // 3개의 공간을 int형으로 만듬
var longArray = LongArray(5) // 5개의 공간을 long형으로 만듬
var charArray = CharArray(2) // 2개의 공간을 char형으로 만듬
var floatArray = FloatArray(1) // 1개의 공간을 float형으로 만듬
var doubleArray = DoubleArray(4) // 4개의 공간을 double형으로 만듬
초기화 없이 선언만 할 경우 위와 같이 사용할 수 있습니다.
참고형 자료인 String은 초기화 없이 선언을 할 수 없다.
var intArray1: Array<Int> = Array(3, {number -> 5}) // 초기화하면서 제너럴로 타입 지정
var intArray2 = arrayOf(10, 15, 20, 30) // 타입 생략
var dayArray = arrayOf("월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일")
선언과 동시에 초기화를 할 경우 타입을 안 넣어도 됩니다.
Array를 사용해서 동일한 값을 모든 공간에 한번에 할당할 수 있고 arrayOf를 이용해서 일일이 값을 할당할 수 있습니다.
var number = IntArray(2) //2개의 공간을 int형으로 선언
number[0] = 10 // number 첫번째 공간에 10 할당
number.set(1, 50) // number 두번째 공간에 50 할당
배열을 선언하고 각각 인덱스를 통해서 값을 할당할 수 있습니다.
number라는 배열은 2개의 공간을 갖고 인덱스 0에는 10, 인덱스 1에는 50이라는 값이 들어있습니다.
var number = IntArray(2)
number[0] = 10
number.set(1, 50)
number[2] = 98
number라는 배열은 2개의 공간만 있지만 3개의 공간을 넣고 싶어서 number[2]라는 3번째 공간에 값을 넣기로 했습니다.
하지만 선언은 var number = IntArray(2), 이처럼 2개의 공간만 선언한 상태이죠.
그럼 저절로 3개의 공간이 만들어지고 98이라는 값이 들어갈까요??
java.lang.ArrayIndexOutOfBoundsException
위와 같은 에러가 발생합니다.
인덱스의 범위를 넘었다라는 에러죠.
그러니 배열 공간의 크기는 선언으로만 변경할 수 있다는 것이죠.
var dayArray = arrayOf("월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일")
var saturday = dayArray[5] // "토요일" 값을 saturday변수에 할당
Log.d("배열값", "${dayArray.get(4)} 뒤엔 ${saturday}이 옵니다!!") // 금요일 뒤엔 토요일이 옵니다!!
할당한 배열을 불러오는 방법은 2가지가 있습니다.
직접적으로 인덱스를 부르는 방법과 get으로 인덱스를 부르는 방법이죠.
그럼 이만~