List.groupBy()
Группирует элементы по ключу в Map со списками.
Сигнатура
fun <T, K> Iterable<T>.groupBy(keySelector: (T) -> K): Map<K, List<T>>groupBy() раскладывает элементы по группам: ключ вычисляет keySelector, а значением становится список всех элементов с этим ключом.
val nums = listOf(1, 2, 3, 4, 5)
val g = nums.groupBy { it % 2 }
println(g) // {1=[1, 3, 5], 0=[2, 4]}