Lambda and Collections in Kotlin

Updated 29 February 2020

Save

Lambdas are very useful with collections and in fact, they are the backbone of the advanced manipulation of collections.

Map and Filter

The basic function to manipulate collection is filter. This function accepts as an argument a lambda and returns a new collection. The lambda is given as an argument an element of the collection and returns a Boolean. If the lambda returns TRUE for an element, that element is added to the new collection, otherwise, it is excluded.

In this example, the filter function returns all even numbers.

The function map creates a new collection created by applying the lambda supplied to map to each element of the collection.

find and groupBy

The function find returns the first element of the collection that satisfies the condition set in the lambda. It is the same function as firstOrNull, which is a longer but also clearer name,

which is a longer but also clearer name.

The function groupBy allows dividing a collection into more groups according to the condition indicated.

fold

The method fold collapses a collection to a unique value, using the provided lambda and a starting value.

In the previous example, the first time we start with 0 and added all elements until the end. In the second case, with start with 15 and subtracted alle elements. Basically, the provided value is used as an argument for the start in the first cycle, then the start becomes the value returned by the previous cycle.

So, in the first case the function behaves like this:

  1. start = 0, element = 5 -> result 5
  2. start = 5, element = 10 -> result 15

For more details, you can take alook on the following links:-

https://kotlinlang.org/docs/reference/collection-filtering.html

https://kotlinlang.org/docs/reference/collection-grouping.html

 

 

 

author
. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Start a Project


    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home