본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다.
컬렉션 처리 메서드는 각각의 단계에서 추가적인 컬렉션을 만들어낸다. 시퀀스로 처리한다 하더라도 추가적인 객체를 만들어낸다.
따라서 적절한 메서드를 사용해서 컬렉션 처리 단계 수를 적절하게 제한하는 게 좋다.
// Soso
fun List<Student>.getNames(): List<String> = this
.map { it.name }
.filter { it != null }
.map { it!! }
// Better
fun List<Student>.getNames(): List<String> = this
.map { it.name }
.filterNotNull()
// Best
fun List<Student>.getNames(): List<String> = this
.mapNotNull { it.name }
이때는 IDE의 추천 기능을 적극적으로 사용하는 것이 좋다.
아래 표를 참고하면 자주 사용하는 컬렉션 처리 함수를 더욱 효과적으로 사용할 수 있다.
'책 > Effective Kotlin' 카테고리의 다른 글
[이펙티브 코틀린] 아이템 43: API의 필수적이지 않은 부분을 확장 함수로 추출하라 (0) | 2023.09.04 |
---|---|
[이펙티브 코틀린] 아이템 42: compareTo의 규약을 지켜라 (0) | 2023.09.04 |
[이펙티브 코틀린] 아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라 (0) | 2023.08.02 |
[이펙티브 코틀린] 아이템17: 이름 있는 아규먼트를 사용하라 (0) | 2023.07.23 |
[이펙티브 코틀린] 아이템16: 프로퍼티는 동작이 아니라 상태를 나타내야 한다 (0) | 2023.07.21 |