Spec-Zone.ru › Kotlin 1.4

Группирование

kotlin-stdlib / kotlin.collections / Grouping
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)
interface Grouping<T, out K>

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

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

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

  • Iterable.groupingBy
  • Sequence.groupingBy
  • Array.groupingBy
  • CharSequence.groupingBy

Список доступных операций группировки и сворачивания см. в разделе расширяющих функций для Grouping.

Функции

Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

keyOf

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

abstract fun keyOf(element: T): K
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

sourceIterator

Возвращает итератор Iterator по элементам источника этой группировки.

abstract fun sourceIterator(): Iterator<T>

Расширяющие функции

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

aggregate

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

fun <T, K, R> Grouping<T, K>.aggregate(
    operation: (key: K, accumulator: R?, element: T, first: Boolean) -> R
): Map<K, R>
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)

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
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)

eachCountTo

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

fun <T, K, M : MutableMap<in K, Int>> Grouping<T, K>.eachCountTo(
    destination: M
): M
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)

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

fun <T, K, R> Grouping<T, K>.fold(
    initialValue: R, 
    operation: (accumulator: R, element: T) -> R
): Map<K, R>
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)

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

fun <T, K, R, M : MutableMap<in K, R>> Grouping<T, K>.foldTo(
    destination: M, 
    initialValue: R, 
    operation: (accumulator: R, element: T) -> R
): M
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)

reduce

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

fun <S, T : S, K> Grouping<T, K>.reduce(
    operation: (key: K, accumulator: S, element: T) -> S
): Map<K, S>
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)

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–2020 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

Spec-Zone.ru

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