코틀린

Do it! 코틀린 프로그래밍, 09-2 List 활용하기

조요피 2021. 8. 28. 20:59

List는 순서에 따라 정렬된 요소를 가지는 컬렉션.

불변형 List 생성

listOf()

가변 인자를 받을 수 있기 때문에 원하는 만큼 요소를 지정할 수 있음.

자료형을 지정해 선언할 수 있지만 그렇지 않으면 기본적으로 Any를 사용.

var l = listOf("hi", 1, 2.2, 'c')

// 컬렉션 반복
for(i in l) println(i)

// 인덱스 사용
for(index i l.indices) println(l[i])

// 비어있는 List
// 반드시 형식 매개변수를 지정
val emptyList: List<String> = emptyList<STring>()

// listOfNotNull()
// null을 제외한 요소로만 List를 구성
val nnl: List<Int> = listOfNotNull(1,2,3,null,5,6,7,null,8)

가변형 List 생성

arrayListOf()

arrayListOf()는 가변형 List를 생성하지만 이것의 반환 자료형은 자바의 ArrayList.

*가변형 : add(), remove()를 통하여 추가/삭제 가능.

public fun <T> arrayListOf(vararg elements: T): ArrayList<T>

mutableListOf()

public fun <T> mutableListOf(vararg elements: T): MutableList<T>

리스트와 배열의 차이

List는 Array<T>와 사용 방법이 비슷.

하지만 Array 클래스에 의해 생성되는 배열 객체는 내부 구조상 고정된 크기의 메모리를 가지고 있음.

코틀린의 List<T>와 MutableList<T>는 인터페이스로 설계되어 있고 이것을 하위에서 특정한 자료구조로 구현.