Grouping
Требования к платформе и версии: Common (1.1)
interface Grouping<T, out K>
Представляет источник элементов с функцией keyOf, которую можно применить к каждому элементу, чтобы получить его ключ.
Структура Grouping служит промежуточным этапом в операциях группировки и свёртки: элементы группируются по ключам, а затем к каждой группе применяется свёртка с помощью некоторой агрегирующей операции.
Она создаётся путём применения функции keySelector: (T) -> K к источнику элементов. Чтобы получить экземпляр Grouping, используйте одну из groupingBy функций расширения:
Список доступных операций группировки и свёртки см. в #extension-functions для Grouping.
Функции
Требования к платформе и версии: Common (1.1)
inline fun <T, K, R, M : MutableMap<in K, R>> Grouping<T, K>.aggregateTo(destination: M, operation: (key: K, accumulator: R?, element: T, first: Boolean) -> R): M
Группирует элементы источника Grouping по ключу, последовательно применяет операцию к элементам каждой группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в указанной карте назначения.
Требования к платформе и версии: Common (1.1)
fun <T, K, M : MutableMap<in K, Int>> Grouping<T, K>.eachCountTo(destination: M): M
Группирует элементы источника Grouping по ключу, подсчитывает количество элементов в каждой группе и сохраняет результаты в указанной карте назначения.
Требования к платформе и версии: Common (1.1)
inline fun <T, K, R> Grouping<T, K>.fold(initialValue: R, operation: (accumulator: R, element: T) -> R): Map<K, R>
Группирует элементы источника Grouping по ключу, последовательно применяет операцию к элементам каждой группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в новой карте. Начальное значение аккумулятора одинаково для каждой группы и задаётся параметром initialValue.
inline fun <T, K, R> Grouping<T, K>.fold(initialValueSelector: (key: K, element: T) -> R, operation: (key: K, accumulator: R, element: T) -> R): Map<K, R>
Группирует элементы источника Grouping по ключу, последовательно применяет операцию к элементам каждой группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в новой карте. Начальное значение аккумулятора задаётся функцией initialValueSelector.
Требования к платформе и версии: Common (1.1)
inline fun <T, K, R, M : MutableMap<in K, R>> Grouping<T, K>.foldTo(destination: M, initialValue: R, operation: (accumulator: R, element: T) -> R): M
Группирует элементы источника Grouping по ключу, последовательно применяет операцию к элементам каждой группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в указанной карте назначения. Начальное значение аккумулятора одинаково для каждой группы и задаётся параметром initialValue.
inline fun <T, K, R, M : MutableMap<in K, R>> Grouping<T, K>.foldTo(destination: M, initialValueSelector: (key: K, element: T) -> R, operation: (key: K, accumulator: R, element: T) -> R): M
Группирует элементы источника Grouping по ключу, последовательно применяет операцию к элементам каждой группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в указанной карте назначения. Начальное значение аккумулятора задаётся функцией initialValueSelector.
Требования к платформе и версии: Common (1.1)
inline fun <S, T : S, K> Grouping<T, K>.reduce(operation: (key: K, accumulator: S, element: T) -> S): Map<K, S>
Группирует элементы источника Grouping по ключу, последовательно применяет редуцирующую операцию к элементам каждой группы, начиная со второго элемента группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в новой карте. Начальным значением аккумулятора является первый элемент группы.
Требования к платформе и версии: Common (1.1)
inline fun <S, T : S, K, M : MutableMap<in K, S>> Grouping<T, K>.reduceTo(destination: M, operation: (key: K, accumulator: S, element: T) -> S): M
Группирует элементы источника Grouping по ключу, последовательно применяет редуцирующую операцию к элементам каждой группы, начиная со второго элемента группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в указанной карте назначения. Начальным значением аккумулятора является первый элемент группы.
Требования к платформе и версии: Common (1.1)
abstract fun sourceIterator(): Iterator<T>
Возвращает Iterator по элементам источника этой группировки.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-grouping/index.html