본문 바로가기
Language/Kotlin

Kotlin의 `filter`와 `map` 함수

by 시니성 2023. 8. 24.

Kotlin은 콜렉션의 처리를 위한 강력한 API를 제공합니다. 그 중에서도 filtermap 함수는 데이터 변환 및 처리에서 가장 널리 사용되는 함수들 중 두 개입니다.

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의 filtermap은 데이터 변환 및 처리에서 핵심적인 도구로서, 간결하면서도 가독성 높은 코드 작성을 돕습니다. 이들은 함수형 프로그래밍 패러다임의 일부로서, 부수 효과(side effect) 없이 데이터를 처리하는 데 중요한 역할을 합니다.