How to flatten an array or map
In the previous few recipes of this chapter, we learned how to create multidimension arrays. In this recipe, we will see how we can convert them to a 1D list, or flatten it.
Getting ready
I'll be using IntelliJ IDEA for writing and running Kotlin code; you are free to use any IDE that can do the same task.
How to do it…
We will be using the .flatten
method of the kotlin.stdlib
library. It takes in an array or collection and returns a single list of all elements from all collections/arrays in the given collection/array.
For example, with an array of arrays:
[[1,2,3],[1,2,3],[1,2,3]] -> [1,2,3,1,2,3,1,2,3]
fun main(args: Array<String>) {
val a= arrayOf(arrayOf(1,2,3),arrayOf(1,2,3),arrayOf(1,2,3))
a.flatten().forEach { print(" ${it} ") }
}
//Output: 1 2 3 1 2 3 1 2 3
For example, with a list of lists:
[[1,2,3],[1,2,3],[1,2,3]] -> [1,2,3,1,2,3,1,2,3]
fun main(args: Array<String>) { val a= listOf(listOf(1,2,3),listOf(1,2,3),listOf(1,2,3))...