Spec-Zone.ru › Kotlin 2

Grouping

kotlin-stdlib/kotlin.collections/Grouping

Требования к платформе и версии: Common (1.1)

interface Grouping<T, out K>

Представляет источник элементов с функцией keyOf, которую можно применить к каждому элементу, чтобы получить его ключ.

Структура Grouping служит промежуточным этапом в операциях группировки и свёртки: элементы группируются по ключам, а затем к каждой группе применяется свёртка с помощью некоторой агрегирующей операции.

Она создаётся путём применения функции keySelector: (T) -> K к источнику элементов. Чтобы получить экземпляр Grouping, используйте одну из groupingBy функций расширения:

  • Iterable.groupingBy

  • Sequence.groupingBy

  • Array.groupingBy

  • CharSequence.groupingBy

Список доступных операций группировки и свёртки см. в #extension-functions для Grouping.

Функции

aggregate

Требования к платформе и версии: Common (1.1)

inline fun <T, K, R> Grouping<T, K>.aggregate(operation: (key: K, accumulator: R?, element: T, first: Boolean) -> R): Map<K, R>

Группирует элементы источника Grouping по ключу, последовательно применяет операцию к элементам каждой группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в новой карте.

aggregateTo

Требования к платформе и версии: 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 по ключу, последовательно применяет операцию к элементам каждой группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в указанной карте назначения.

eachCount

Требования к платформе и версии: Common (1.1), JS (1.1), JVM (1.1), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)

expect fun <T, K> Grouping<T, K>.eachCount(): Map<K, Int>

Группирует элементы источника Grouping по ключу и подсчитывает количество элементов в каждой группе.

eachCountTo

Требования к платформе и версии: Common (1.1)

fun <T, K, M : MutableMap<in K, Int>> Grouping<T, K>.eachCountTo(destination: M): M

Группирует элементы источника Grouping по ключу, подсчитывает количество элементов в каждой группе и сохраняет результаты в указанной карте назначения.

fold

Требования к платформе и версии: 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.

foldTo

Требования к платформе и версии: 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.

keyOf

Требования к платформе и версии: Common (1.1)

abstract fun keyOf(element: T): K

Извлекает ключ элемента.

reduce

Требования к платформе и версии: 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 по ключу, последовательно применяет редуцирующую операцию к элементам каждой группы, начиная со второго элемента группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в новой карте. Начальным значением аккумулятора является первый элемент группы.

reduceTo

Требования к платформе и версии: 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 по ключу, последовательно применяет редуцирующую операцию к элементам каждой группы, начиная со второго элемента группы, передавая ранее накопленное значение и текущий элемент в качестве аргументов, и сохраняет результаты в указанной карте назначения. Начальным значением аккумулятора является первый элемент группы.

sourceIterator

Требования к платформе и версии: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API