Google News
logo
Kotlin - Interview Questions
Explain the difference between 'filter' and 'map' functions in Kotlin.
In Kotlin, the `filter` and `map` functions are both higher-order functions used for transforming and manipulating collections. However, they have distinct purposes and behaviors. Here's an explanation of the difference between `filter` and `map`:

1. `filter` Function :
   * The `filter` function is used to filter elements from a collection based on a given predicate (a lambda expression that returns a Boolean value).
   * It returns a new collection that contains only the elements for which the predicate evaluates to `true`.
   * The original collection remains unchanged.
   Example :
     val numbers = listOf(1, 2, 3, 4, 5)
     val filtered = numbers.filter { it % 2 == 0 } // Keep only even numbers
     // filtered: [2, 4]​


2. `map` Function :
   * The `map` function is used to transform each element in a collection by applying a transformation function (a lambda expression) to each element.
   * It returns a new collection that contains the transformed elements.
   * The original collection remains unchanged.
   Example :
     val numbers = listOf(1, 2, 3, 4, 5)
     val mapped = numbers.map { it * it } // Square each number
     // mapped: [1, 4, 9, 16, 25]​
In the key differences between `filter` and `map` are:

* `filter` is used to select or filter elements from a collection based on a predicate, returning a new collection with only the matching elements.
* `map` is used to transform each element in a collection by applying a transformation function, returning a new collection with the transformed elements.

While `filter` allows you to select elements that meet certain conditions, `map` enables you to transform each element into something else. Both functions are valuable for working with collections and can often be used together in combination to achieve the desired result.
Advertisement