Better way to combine in Kotlin?

71 Views Asked by At

I want to combine all elements from one list with all elements from another list, to obtain all possible pairs.

Of course, we can do this in a loop (not tested):

val list1 = listOf(1, 2, 3)
val list2 = listOf('A', 'B', 'C')

val result = mutableListOf<Pair<Int, Char>>()

for (item1 in list1) {
    for (item2 in list2) {
        result.add(Pair(item1, item2))
    }
}

println(result)

Is there a better solution with build-in functions like zip?

1

There are 1 best solutions below

0
Nikolas Charalambidis On BEST ANSWER

Untested, but I guess it should work:

val result = list1.flatMap { item1 ->
    list2.map { item2 ->
        Pair(item1, item2)
    }
}