List.partition()
Разбивает коллекцию на две: подходящие и не подходящие под условие.
Сигнатура
fun <T> Iterable<T>.partition(predicate: (T) -> Boolean): Pair<List<T>, List<T>>partition() возвращает Pair из двух списков: первый — элементы, для которых предикат true, второй — остальные.
val nums = listOf(1, 2, 3, 4)
val (even, odd) = nums.partition { it % 2 == 0 }
println(even) // [2, 4]
println(odd) // [1, 3]