KOTLIN · 컬렉션
불변 컬렉션 활용 (Immutable Collections)
Kotlin은 읽기 전용 컬렉션을 기본으로 제공합니다. kotlinx.collections.immutable로 진정한 불변 컬렉션을 사용합니다.
컬렉션중급immutablebuildListdefensive-copyread-only
핵심 설명
Kotlin은 읽기 전용 컬렉션을 기본으로 제공합니다. kotlinx.collections.immutable로 진정한 불변 컬렉션을 사용합니다.
Kotlin code
fun main() {
// 읽기 전용 (인터페이스만 제한)
val readOnly: List<Int> = listOf(1, 2, 3)
// readOnly.add(4) // 컴파일 오류
// mutable 뷰로 변경 가능 (주의!)
val mutable = mutableListOf(1, 2, 3)
val view: List<Int> = mutable
mutable.add(4)
println(view) // [1, 2, 3, 4] - 영향 받음!
// 안전한 방어적 복사
fun getItems(): List<Int> {
val internal = mutableListOf(1, 2, 3)
return internal.toList() // 복사본 반환
}
// buildList로 불변 리스트 생성
val immutable = buildList {
add(1)
addAll(listOf(2, 3, 4))
removeIf { it % 2 == 0 }
}
println(immutable) // [1, 3]
// buildMap
val config = buildMap {
put("host", "localhost")
put("port", "8080")
}
println(config)
}학습 팁
buildList, buildMap, buildSet은 빌더 내에서만 변경 가능하고, 결과는 읽기 전용입니다.
주의할 점
읽기 전용 List와 진정한 불변 리스트는 다릅니다. 원본 MutableList가 변경되면 뷰도 영향을 받습니다. toList()로 복사하세요.
자주 묻는 질문
불변 컬렉션 활용 (Immutable Collections)란 무엇인가요?
Kotlin은 읽기 전용 컬렉션을 기본으로 제공합니다. kotlinx.collections.immutable 로 진정한 불변 컬렉션을 사용합니다.
불변 컬렉션 활용 (Immutable Collections) 학습 시 주의할 점은 무엇인가요?
읽기 전용 List 와 진정한 불변 리스트는 다릅니다. 원본 MutableList 가 변경되면 뷰도 영향을 받습니다. toList() 로 복사하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.