Kotlin은 콜렉션의 처리를 위한 강력한 API를 제공합니다. 그 중에서도 filter
와 map
함수는 데이터 변환 및 처리에서 가장 널리 사용되는 함수들 중 두 개입니다.
1. filter
함수
filter
는 주어진 조건을 만족하는 요소만을 선택하여 새로운 콜렉션을 생성합니다.- 함수는 Boolean 값을 반환하는 람다를 인자로 받습니다.
true
를 반환하는 요소만 새로운 콜렉션에 포함됩니다.
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evenNumbers = numbers.filter { it % 2 == 0 }
// 결과: [2, 4, 6]
여기서, it
은 현재 처리중인 요소를 가리킵니다.
2. map
함수
map
은 주어진 콜렉션의 각 요소를 변환하여 새로운 콜렉션을 생성합니다.- 함수는 람다를 인자로 받으며, 람다의 반환 값이 새로운 콜렉션의 요소가 됩니다.
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
// 결과: [1, 4, 9, 16, 25]
여기서도, it
은 현재 처리중인 요소를 나타냅니다.
조합하여 사용하기
두 함수는 함께 사용되어 강력한 데이터 처리 파이프라인을 생성할 수 있습니다.
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9)
// 짝수만 선택하고, 그 수의 제곱을 구함
val processedNumbers = numbers.filter { it % 2 == 0 }.map { it * it }
// 결과: [4, 16, 36, 64]
결론
Kotlin의 filter
와 map
은 데이터 변환 및 처리에서 핵심적인 도구로서, 간결하면서도 가독성 높은 코드 작성을 돕습니다. 이들은 함수형 프로그래밍 패러다임의 일부로서, 부수 효과(side effect) 없이 데이터를 처리하는 데 중요한 역할을 합니다.
'Language > Kotlin' 카테고리의 다른 글
리플렉션(Reflection) in Kotlin & Spring (0) | 2023.08.24 |
---|---|
클래스 리터럴이란? (0) | 2023.08.24 |
Kotlin에서 람다의 라벨링 (0) | 2023.08.23 |
Builder 패턴이란? (feat. Kotlin의 코드 간결성 찬양) (0) | 2023.08.17 |
Kotlin의 코드 간결성 (Lombok과 유사한 기능들 비교) (0) | 2023.08.17 |