Kotlin Tutorials

Kotlin Set flatMap()
Syntax & Examples

Set.flatMap() extension function

The flatMap() extension function in Kotlin returns a single list of all elements yielded from the results of the transform function being invoked on each element of the original set.


Syntax of Set.flatMap()

The syntax of Set.flatMap() extension function is:

fun <T, R> Set<T>.flatMap(transform: (T) -> Iterable<R>): List<R>

This flatMap() extension function of Set returns a single list of all elements yielded from results of transform function being invoked on each element of original collection.

Parameters

ParameterOptional/RequiredDescription
transformrequiredA function that takes an element and returns an iterable of results.

Return Type

Set.flatMap() returns value of type List.



✐ Examples

1 Flattening a set of lists

Using flatMap() to flatten a set of lists into a single list.

For example,

  1. Create a set of lists of integers.
  2. Define a transform function that returns the list itself.
  3. Use flatMap() to flatten the set of lists into a single list.
  4. Print the resulting list.

Kotlin Program

fun main() {
    val setOfLists: Set<List<Int>> = setOf(listOf(1, 2), listOf(3, 4), listOf(5))
    val flatList = setOfLists.flatMap { it }
    println(flatList)
}

Output

[1, 2, 3, 4, 5]

2 Flattening a set of strings into characters

Using flatMap() to flatten a set of strings into a single list of characters.

For example,

  1. Create a set of strings.
  2. Define a transform function that returns the characters of each string as an iterable.
  3. Use flatMap() to flatten the set of strings into a single list of characters.
  4. Print the resulting list of characters.

Kotlin Program

fun main() {
    val setOfStrings: Set<String> = setOf("one", "two", "three")
    val charList = setOfStrings.flatMap { it.toList() }
    println(charList)
}

Output

[o, n, e, t, w, o, t, h, r, e, e]

3 Flattening a set of integers to their factors

Using flatMap() to flatten a set of integers into a single list of their factors.

For example,

  1. Create a set of integers.
  2. Define a transform function that returns the factors of each integer as an iterable.
  3. Use flatMap() to flatten the set of integers into a single list of their factors.
  4. Print the resulting list of factors.

Kotlin Program

fun main() {
    val setOfIntegers: Set<Int> = setOf(6, 8)
    val factorsList = setOfIntegers.flatMap { number -> (1..number).filter { number % it == 0 } }
    println(factorsList)
}

Output

[1, 2, 3, 6, 1, 2, 4, 8]

Summary

In this Kotlin tutorial, we learned about flatMap() extension function of Set: the syntax and few working examples with output and detailed explanation for each example.