개발/Kotlin

[Kotlin] Immutable Collections, Mutable Collections

YJ_Lee 2022. 11. 1. 21:06

Immutable Collections

컬렉션 요소의 추가 및 수정이 불가능하다. (읽기전용)

때문에 Thread 작업 환경에서 안전하며, Mutable에 비해 메모리 효율적이다.

수정이 불필요한 컬렉션의 경우에는 Immutable로 선언하는것이 좋다. (외부 API로 부터 받아온 정보 등)

 

Mutable Collections

기존 Java 컬렉션과 같이 요소 추가, 수정이 가능하다.

 

Kotlin에서 listOf, SetOf 등의 메서드를 사용하여 생성되는 컬렉션은 Immutable하다.

 

fun main() {
    val list = listOf()
}
val immutableList = listOf(3, 1, 2)
val mutableList = mutableListOf<Int>()

immutableList.add(1) // 컴파일 에러; 존재하지 않는 add() 메서드
mutableList.add(1)

immutableList[0] = 10 // 컴파일 에러; 존재하지 않는 set() 메서드
mutableList[0] = 10

 

arrayListOf() 와 같이 Mutable한 컬렉션을 지칭하여 생성하면 당연히 수정가능하다.

val mutableList = mutableListOf(3, 1, 2)
mutableList.add(10)
mutableList[0] = 9
println(mutableList.joinToString(" "))
9 1 2 10

 

'개발 > Kotlin' 카테고리의 다른 글

[Kotlin] Kotest 정리  (0) 2023.03.19