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

2024. 2. 3. 19:59·Kotlin/이펙티브 코틀린
반응형

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
'Kotlin/이펙티브 코틀린' 카테고리의 다른 글
  • [이펙티브 코틀린] Item51. 성능이 중요한 부분에는 기본 자료형 배열을 사용하라
  • [이펙티브 코틀린] Item50. 컬렉션 처리 단계 수를 제한하라.
  • [이펙티브 코틀린] Item49. 하나 이상의 처리 단계를 가진 경우에는 시퀀스를 사용하라
  • [이펙티브 코틀린] Item48. 더 이상 사용하지 않는 객체의 레퍼런스를 제거하라
어리둥절범고래
어리둥절범고래
    반응형
  • 어리둥절범고래
    안드로이드 개발자 노트
    어리둥절범고래
  • 전체
    오늘
    어제
    • 분류 전체보기 (111)
      • Android (14)
      • Kotlin (94)
        • 이펙티브 코틀린 (52)
        • 코틀린 완벽 가이드 (14)
        • 코틀린 코루틴 (17)
        • 코루틴의 정석 (11)
      • Conference (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
어리둥절범고래
[이펙티브 코틀린] Item52. mutable 컬렉션 사용을 고려하라
상단으로

티스토리툴바