개요
- 정적인 데이터 타입으로 선언시 크기가 정해지고 크기 변경이 불가능하다
- 기본적으로 값 수정이 가능하고 set(), get() 메소드가 존재
배열 선언 - arrayOf()
public inline fun <reified @PureReifiable T> arrayOf(vararg elements: T): Array<T>
arrayOf()의 경우 Array타입의 배열 객체를 반환한다.
기존의 자료구조에서 배열은 한 타입에 제한되어 값을 지정한다고 알고 있는데 코틀린에서는 다양한 타입이 들어가도 되는듯!
단, arrayOf에 여러 타입을 섞었을 경우 값 변경 안됨!
val arr = arrayOf(1,2,3)
val arr2 = arrayOf(0,"하이", false, 3.14)
//null생성시
val arrNull = arrayOfNulls<Int>(5) -> 초기값이 null인 길이 10의 int형 배열 생성
//배열 출력시
println(arr.contentToString()) -> [1,2,3]
타입 지정
- 제네릭 활용
val arr = arrayOf<Int>(1,2,3)
val arr2 = arrayOf<String>("하","이","요")
제네릭을 지정하여 타입을 설정할 수 있다. 하지만 이렇게 지정하면 Boxing 현상으로 추가적인 오버헤드가 발생할 수 있다고 한다.(Boxing 현상은 추후 공부)
- 제공함수 활용
val arrInt = intArrayOf(1,2,3)
val arrChar = charArrayOf("h","i")
val arrBoolean = booleanArrayOf(true,false)
배열 선언 - Array<T>()
public class Array<T> {
public inline constructor(size: Int, init: (Int) -> T)
public operator fun get(index: Int) : T
public operator fun set(index: Int, value: T): Unit
public val size: Int
public operator fun iterator() : Iterator<T>
}
Array클래스는 위의 코드와 같이 나와있고, get(),set()을 통해 값 변경 및 인덱스 조회가 가능!
get(),set() -> [ ]로 변경 가능하다
var arr = Array(사이즈,{값})
var arr2 = Array(사이즈){값}
선언은 위 코드처럼 하면 됨!
타입 지정
- 제네릭
var arr = Array<Int>(4,{0})
var arr2 = Array<String>(10,{""})
- 제공 클래스
var arr = IntArray(10,{0})
var arr2 = ByteArray(5,{0})
var arr3 = CharArray(10){' '}
'Language > kotlin' 카테고리의 다른 글
[Kotlin] Coroutine (0) | 2024.07.23 |
---|---|
[Kotlin] 스코프함수(Scope function) (1) | 2024.07.05 |
[Kotlin] 추상 클래스 & 인터페이스 (0) | 2024.06.10 |
[kotlin] Data class 란? (0) | 2024.05.29 |
[kotlin] 정렬 정리 (0) | 2023.12.19 |