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>는 인터페이스로 설계되어 있고 이것을 하위에서 특정한 자료구조로 구현.
'코틀린' 카테고리의 다른 글
Do it! 코틀린 프로그래밍, 09-4 컬렉션의 확장 함수 (0) | 2021.09.09 |
---|---|
Do it! 코틀린 프로그래밍, 09-3 Set과 Map 활용하기 (0) | 2021.09.02 |
Do it! 코틀린 프로그래밍, 09-1 컬렉션의 구조와 기본 (0) | 2021.08.28 |
Do it! 코틀린 프로그래밍, 08-3 문자열 다루기 (0) | 2021.08.28 |
Do it! 코틀린 프로그래밍, 04-3 흐름의 중단과 반환 (0) | 2021.08.26 |