Google News
logo
Kotlin - Interview Questions
What is the purpose of 'groupBy' function in Kotlin?
The `groupBy` function in Kotlin is a higher-order function used to group elements of a collection based on a specific key or property. It allows you to categorize and organize elements into groups based on a common characteristic.

Here's an explanation of the purpose and usage of the `groupBy` function:

1. Grouping Elements :
   * The `groupBy` function takes a lambda expression or a function that defines the key for grouping elements.
   * For each element in the collection, the key is computed, and elements with the same key are grouped together.

2. Resulting Map :
   * The `groupBy` function returns a map where each key corresponds to a group, and the corresponding value is a list of elements in that group.
   * The map is structured in a way that allows efficient lookup of elements based on the grouping key.
   * Each group is represented by a key-value pair in the map.
3. Example :
   data class Person(val name: String, val age: Int)

   val people = listOf(
       Person("Alice", 20),
       Person("Bob", 25),
       Person("Charlie", 20),
       Person("Dave", 25)
   )

   val groupedByAge = people.groupBy { it.age }
   // Result: {20=[Person(name=Alice, age=20), Person(name=Charlie, age=20)],
   //          25=[Person(name=Bob, age=25), Person(name=Dave, age=25)]}​

   In this example, the `people` list is grouped by the `age` property using the `groupBy` function. The resulting map (`groupedByAge`) has keys corresponding to the distinct age values (20 and 25), and the values are lists of `Person` objects with the same age.

The `groupBy` function is useful in various scenarios where you need to categorize elements based on specific criteria. It allows you to efficiently group elements and provides a convenient way to organize and process data.
Advertisement