반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

안드로이드 개발자 노트

[이펙티브 코틀린] Item52. mutable 컬렉션 사용을 고려하라 본문

Kotlin/이펙티브 코틀린

[이펙티브 코틀린] Item52. mutable 컬렉션 사용을 고려하라

어리둥절범고래 2024. 2. 3. 19:59
반응형

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 컬렉션으로 제공하는 것이 좋습니다.

반응형