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