본문 바로가기
공부/이펙티브코틀린

아이템 52 - mutable 컬렉션 사용을 고려하라

by 띵커베르 2024. 3. 25.
728x90

  • immutable 컬렉션보다 mutable 컬렉션이 좋은 점은 성능적인 측면에서 더 빠르다는 것이다.
  • immutable 컬렉션에 요소를 추가하려면, 새로운 컬렉션을 만들면서 여기에 요소를 추가해야 합니다.
    • plus 함수는 새로운 객체를 반환합니다.
  • 이처럼 컬렉션을 복제하는 처리는 비용이 굉장히 많이 드는 처리입니다.
  • 이러한 복제 처리를 하지 않는 mutable 컬렉션이 성능적 괌점에서 좋습니다.

 


정리

  • 가변 컬렉션은 일반적으로 추가 처리가 빠르다.
  • item 1: 가변성을 제한하라 에서 언급한 immutable 컬렉션은 안전하다 측면에서는 좋다.
  • 일반적인 지역 변수는 이때 언급했던 문제가 될 수 있는 경우(동기화와 캡슐화)에 해당하지 않는다.
    • 지역변수는 그 변수가 선언된 메소드 내에서만 접근 가능하므로, 다른 스레드나 메소드에서 직접 겁근하여 변경하는 일이 없으므로, 동기화 문제가 발생할 가능성이 낮다.
  • 따라서 지역 변수로 사용할 때는 mutable 컬렉션을 사용하는 것이 더 합리적이다.
728x90

댓글