본문 바로가기
2학년 2학기/모바일 소프트웨어 - 코틀린

Array, Generic, Collection) Array(1) - 배열의 생성

by print_soo 2024. 10. 11.

배열은 순서를 갖고있다. 따라서 정수 인덱싱이 가능하다.

배열을 생성하는 방법은 총 3가지가 있다. arrayOf(), Array() + 람다식, 타입 + ArrayOf()

 

 

 

arrayOf()

var/val 배열명: Array<타입> = arrayOf<타입>("", "", "")

//타입은 생략가능
var/val 배열명 = arrayOf("", "", "")

 

 

실제 사용 예시는 아래와 같다.

fun main() {
    val strArr = arrayOf("R", "G", "B")
    strArr.forEachIndexed{ i, str -> print("strArr[$i] = $str, ")}
    // strArr[0] = R, strArr[1] = G, strArr[2] = B, 
}

 

 

 


 

 

 

Array() + 람다식

 

val/var 배열명: Array<타입> = Array(배열 크기) { 각 원소에 수행할 작업 }

 

 

실제 사용 예시를 살펴보자.

fun main() {
    val strArr = Array(3) { i -> i.toString() }
    println(strArr.contentToString()) // [0, 1, 2]
}

 

 

번외로 null 값을 요소의 값으로 가지게 만들 수도 있다.

fun main() {
    val nullArr: Array<String?> = arrayOfNulls<String>(3)
    println(nullArr.contentToString()) // [null, null, null]
}

 

 


 

 

타입 + ArrayOf()

이 방식은 ArrayOf로 배열을 만들지만 타입을 확정해서 만든다. 

var/val 배열명: 타입Array = 타입ArrayOf("", "", "")

 

 

fun main() {

    // [false, false, false]
    val checked: Array<Boolean> = arrayOf(false, false, false)
    val checked2 = Array(3) {false}
    val checked3: BooleanArray = booleanArrayOf(false, false, false)
}

 

checked3가 타입 + ArrayOf()로 배열을 만드는 방식이다.

다른 배열 생성 방식과 다른 점은 타입을 확정적으로 사용해서 배열을 생성하기 때문에 타입명이 다르다.

 

int도 가능하나, Stirng은 불가능하다!!!