Spec-Zone.ru › Kotlin 1.8

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

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

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

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

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

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

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

Функции

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

keyOf

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

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

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

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

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