-
50장 - 컬렉션 처리 단계 수를 제한하라Kotlin/Effective Kotlin 요약 2023. 4. 14. 00:01728x90
컬렉션의 비용
모든 컬렉션 처리 메서드는 비용이 많이 듭니다.
내부적으로 요소들을 활용해 반복을 돌며, 추가적인 컬렉션을 만들어 사용하기도 합니다.
시퀀스도 시퀀스 전체를 랩 하는 객체가 만들어지며, 조작을 위해 또 다른 추가적인 객체를 만들어냅니다.
컬렉션의 처리의 단계 수
컬렉션과 시퀀스의 처리 수가 많다면 꽤 큰 비용이 들어갑니다.
어떤 메서드를 사용하는지에 따라서 컬렉션 처리의 단계 수가 달라집니다.
따라서 적절한 메서드를 활용해서 컬렉션 처리 단계 수를 적절하게 제한하는 것이 좋습니다.
이 코드보다는 이 코드가 좋습니다. .filter { it != null }
.map { it }.filterNotNull() .map { Transformation }
.filterNotNull().mapNotNull { Transformation } .map { Transformation }
.joinToString().joinToString { Transformation } .filter { Predicate1 }
.filter{ Predicate2 }.filter { Predicate1 && Predicate2 } .filter { it is Type }
.map { it as Type }.filterIsInstance() .sortedBy { Key2 }
.sortedBy { Key1 }.sortedWith(
compareBy({ Key1 }, { Key2 })
).listOf(…)
.filterNotNull().listOfNotNull(…) .withIndex()
.filter { (index, element) ->
Predicate using index
}
.map { it.value }.filterIndexed { index, element ->
Predicate using index
}'Kotlin > Effective Kotlin 요약' 카테고리의 다른 글
52장 - mutable 컬렉션 사용을 고려하라 (0) 2023.04.16 51장 - 성능이 중요한 부분에는 기본 자료형 배열을 사용하라 (0) 2023.04.15 49장 - 하나 이상의 처리 단계를 가진 경우에는 시퀀스를 사용하라 (0) 2023.04.13 48장 - 더 이상 사용하지 않는 객체의 레퍼런스를 제거하라 (0) 2023.04.12 47장 - 인라인 클래스의 사용을 고려하라 (0) 2023.04.11