안드로이드 개발자 노트
[이펙티브 코틀린] Item52. mutable 컬렉션 사용을 고려하라 본문
반응형
immutable 컬렉션보다 mutable 컬렉션이 성능적인 측면에서 더 빠릅니다.
immutable 컬렉션에 요소를 추가하려면, 새로운 컬렉션을 만들면서 여기에 요소를 추가하기 때문에 새로운 객체 생성 비용이 발생합니다.
public operator fun <T> Iterable<T>.plus(elements: Array<out T>): List<T> {
if (this is Collection) return this.plus(elements)
val result = ArrayList<T>()
result.addAll(this)
result.addAll(elements)
return result
}
immutable 컬렉션은 안전하다는 측면에서 좋지만, 일반적인 지역 변수는 동기화와 캡슐화의 문제에 해당하지 않습니다.
그러므로 지역 변수로 사용할 때는 mutable 컬렉션을 사용하는 것이 더 합리적이라고 할 수 있습니다.
또한, 내부에서는 mutable 컬렉션을 사용하고, 외부에 제공할 경우에는 immutable 컬렉션으로 제공하는 것이 좋습니다.
반응형
'Kotlin > 이펙티브 코틀린' 카테고리의 다른 글
[이펙티브 코틀린] Item51. 성능이 중요한 부분에는 기본 자료형 배열을 사용하라 (0) | 2024.02.03 |
---|---|
[이펙티브 코틀린] Item50. 컬렉션 처리 단계 수를 제한하라. (0) | 2024.02.03 |
[이펙티브 코틀린] Item49. 하나 이상의 처리 단계를 가진 경우에는 시퀀스를 사용하라 (1) | 2024.02.03 |