Пакет kotlin.sequences
Sequence тип, представляющий лениво вычисляемые коллекции. Функции верхнего уровня для создания последовательностей и расширяющие функции для последовательностей.
Классификация последовательностей
Операции над последовательностями можно разделить на следующие группы в зависимости от требований к состоянию:
- бессостоятельные – операции, не требующие состояния и обрабатывающие каждый элемент независимо, такие как kotlin.sequences.Sequence.map, kotlin.sequences.Sequence.filter, или требующие небольшого постоянного состояния для обработки элемента, например kotlin.sequences.Sequence.take или kotlin.sequences.Sequence.drop;
- состоятельные – операции, требующие значительного состояния, обычно пропорционального количеству элементов в последовательности.
Если операция над последовательностью возвращает другую последовательность, которая генерируется лениво, она называется промежуточной, в противном случае операция является терминальной. Примеры терминальных операций – kotlin.sequences.Sequence.toList, kotlin.sequences.Sequence.max.
Последовательности могут быть итерированы многократно, однако некоторые реализации последовательностей могут быть ограничены единственной итерацией. Это специально упоминается в их документации (например, перегрузка kotlin.sequences.generateSequence). Последние последовательности генерируют исключение при попытке итерирования их во второй раз.
Sequence тип, представляющий лениво вычисляемые коллекции. Функции верхнего уровня для создания последовательностей и расширяющие функции для последовательностей.
Классификация последовательностей
Операции над последовательностями можно разделить на следующие группы в зависимости от требований к состоянию:
- бессостоятельные – операции, не требующие состояния и обрабатывающие каждый элемент независимо, такие как kotlin.sequences.Sequence.map, kotlin.sequences.Sequence.filter, или требующие небольшого постоянного состояния для обработки элемента, например kotlin.sequences.Sequence.take или kotlin.sequences.Sequence.drop;
- состоятельные – операции, требующие значительного состояния, обычно пропорционального количеству элементов в последовательности.
Если операция над последовательностью возвращает другую последовательность, которая генерируется лениво, она называется промежуточной, в противном случае операция является терминальной. Примеры терминальных операций – kotlin.sequences.Sequence.toList, kotlin.sequences.Sequence.max.
Последовательности могут быть итерированы многократно, однако некоторые реализации последовательностей могут быть ограничены единственной итерацией. Это специально упоминается в их документации (например, перегрузка kotlin.sequences.generateSequence). Последние последовательности генерируют исключение при попытке итерирования их во второй раз.
Типы
Sequence
Последовательность, возвращающая значения через свой итератор. Значения вычисляются лениво, и последовательность потенциально бесконечна.
interface Sequence<out T>
SequenceScope
Расширения для внешних классов
java.util.Enumeration
Функции
все
Возвращает true , если все элементы соответствуют заданному предикату.
fun <T> Sequence<T>.all(predicate: (T) -> Boolean): Boolean
любой
Возвращает true , если последовательность содержит хотя бы один элемент.
fun <T> Sequence<T>.any(): Boolean
Возвращает true , если хотя бы один элемент соответствует заданному предикату.
fun <T> Sequence<T>.any(predicate: (T) -> Boolean): Boolean
asIterable
Создаёт экземпляр Iterable, который оборачивает исходную последовательность, возвращая её элементы при итерировании.
fun <T> Sequence<T>.asIterable(): Iterable<T>
asSequence
Возвращает эту последовательность как Sequence.
fun <T> Sequence<T>.asSequence(): Sequence<T>
Создаёт последовательность, которая возвращает все элементы из этого итератора. Последовательность ограничена итерацией только один раз.
fun <T> Iterator<T>.asSequence(): Sequence<T>
associate
associateBy
Возвращает Map, содержащую элементы из заданной последовательности, индексированные ключом, возвращённым из функции keySelector, применённой к каждому элементу.
fun <T, K> Sequence<T>.associateBy( keySelector: (T) -> K ): Map<K, T>
Возвращает Map, содержащую значения, предоставленные функцией valueTransform и индексированные функцией keySelector, применённой к элементам заданной последовательности.
fun <T, K, V> Sequence<T>.associateBy( keySelector: (T) -> K, valueTransform: (T) -> V ): Map<K, V>
associateByTo
Заполняет и возвращает изменяемую карту destination парами ключ-значение, где ключ предоставляется функцией keySelector, применённой к каждому элементу заданной последовательности, а значением является сам элемент.
fun <T, K, M : MutableMap<in K, in T>> Sequence<T>.associateByTo( destination: M, keySelector: (T) -> K ): M
Заполняет и возвращает изменяемую карту destination парами ключ-значение, где ключ предоставляется функцией keySelector, а значение — функцией valueTransform, применённой к элементам заданной последовательности.
fun <T, K, V, M : MutableMap<in K, in V>> Sequence<T>.associateByTo( destination: M, keySelector: (T) -> K, valueTransform: (T) -> V ): M
associateTo
Заполняет и возвращает изменяемую карту destination парами ключ-значение, полученными из функции transform, применённой к каждому элементу заданной последовательности.
fun <T, K, V, M : MutableMap<in K, in V>> Sequence<T>.associateTo( destination: M, transform: (T) -> Pair<K, V> ): M
associateWith
Возвращает Map, где ключи — элементы из заданной последовательности, а значения — полученные из функции valueSelector, применённой к каждому элементу.
fun <K, V> Sequence<K>.associateWith( valueSelector: (K) -> V ): Map<K, V>
associateWithTo
Заполняет и возвращает изменяемую карту назначения парами «ключ-значение» для каждого элемента заданной последовательности, где ключ — сам элемент, а значение — результат применения функции valueSelector к этому ключу.
fun <K, V, M : MutableMap<in K, in V>> Sequence<K>.associateWithTo( destination: M, valueSelector: (K) -> V ): M
average
Возвращает среднее значение элементов в последовательности.
fun Sequence<Byte>.average(): Double
fun Sequence<Short>.average(): Double
fun Sequence<Int>.average(): Double
fun Sequence<Long>.average(): Double
fun Sequence<Float>.average(): Double
fun Sequence<Double>.average(): Double
chunked
Разделяет эту последовательность на последовательность списков, каждый из которых не превышает заданного размера.
fun <T> Sequence<T>.chunked(size: Int): Sequence<List<T>>
Разделяет эту последовательность на несколько списков, каждый из которых не превышает заданного размера, и применяет заданную функцию преобразования к каждому из них.
fun <T, R> Sequence<T>.chunked( size: Int, transform: (List<T>) -> R ): Sequence<R>
constrainOnce
Возвращает обернутую последовательность, которая предоставляет значения из этой последовательности, но гарантирует, что она может быть итерирована только один раз.
fun <T> Sequence<T>.constrainOnce(): Sequence<T>
contains
Возвращает true, если элемент найден в последовательности.
operator fun <T> Sequence<T>.contains(element: T): Boolean
count
Возвращает количество элементов в этой последовательности.
fun <T> Sequence<T>.count(): Int
Возвращает количество элементов, соответствующих заданному предикату.
fun <T> Sequence<T>.count(predicate: (T) -> Boolean): Int
distinct
Возвращает последовательность, содержащую только уникальные элементы из заданной последовательности.
fun <T> Sequence<T>.distinct(): Sequence<T>
distinctBy
Возвращает последовательность, содержащую только элементы из заданной последовательности, имеющие уникальные ключи, возвращаемые заданной функцией выбора.
fun <T, K> Sequence<T>.distinctBy( selector: (T) -> K ): Sequence<T>
drop
Возвращает последовательность, содержащую все элементы, кроме первых n элементов.
fun <T> Sequence<T>.drop(n: Int): Sequence<T>
dropWhile
Возвращает последовательность, содержащую все элементы, кроме первых элементов, удовлетворяющих заданному предикату.
fun <T> Sequence<T>.dropWhile( predicate: (T) -> Boolean ): Sequence<T>
elementAt
Возвращает элемент по заданному индексу, или выбрасывает исключение IndexOutOfBoundsException, если индекс выходит за пределы этой последовательности.
fun <T> Sequence<T>.elementAt(index: Int): T
elementAtOrElse
Возвращает элемент по заданному индексу или результат вызова функции defaultValue, если индекс выходит за пределы этой последовательности.
fun <T> Sequence<T>.elementAtOrElse( index: Int, defaultValue: (Int) -> T ): T
elementAtOrNull
emptySequence
Возвращает пустую последовательность.
fun <T> emptySequence(): Sequence<T>
filter
Возвращает последовательность, содержащую только элементы, соответствующие заданному предикату.
fun <T> Sequence<T>.filter( predicate: (T) -> Boolean ): Sequence<T>
filterIndexed
Возвращает последовательность, содержащую только элементы, соответствующие заданному предикату.
fun <T> Sequence<T>.filterIndexed( predicate: (index: Int, T) -> Boolean ): Sequence<T>
filterIndexedTo
Добавляет все элементы, соответствующие заданному предикату, в заданное назначение.
fun <T, C : MutableCollection<in T>> Sequence<T>.filterIndexedTo( destination: C, predicate: (index: Int, T) -> Boolean ): C
первый
Возвращает первый элемент.
fun <T> Sequence<T>.first(): T
Возвращает первый элемент, соответствующий заданному предикату.
fun <T> Sequence<T>.first(predicate: (T) -> Boolean): T
firstNotNullOf
Возвращает первое не-null значение, полученное в результате применения функции transform к элементам этого последовательности в порядке итерации, или генерирует исключение NoSuchElementException, если не было произведено никакого не-null значения.
fun <T, R : Any> Sequence<T>.firstNotNullOf( transform: (T) -> R? ): R
firstNotNullOfOrNull
Возвращает первое не-null значение, полученное в результате применения функции transform к элементам этого последовательности в порядке итерации, или null , если не было произведено никакого не-null значения.
fun <T, R : Any> Sequence<T>.firstNotNullOfOrNull( transform: (T) -> R? ): R?
firstOrNull
Возвращает первый элемент, или null , если последовательность пуста.
fun <T> Sequence<T>.firstOrNull(): T?
Возвращает первый элемент, соответствующий заданному предикату, или null если элемент не был найден.
fun <T> Sequence<T>.firstOrNull( predicate: (T) -> Boolean ): T?
forEach
Выполняет заданное действие над каждым элементом.
fun <T> Sequence<T>.forEach(action: (T) -> Unit)
forEachIndexed
Выполняет заданное действие над каждым элементом, предоставляя последовательный индекс с элементом.
fun <T> Sequence<T>.forEachIndexed( action: (index: Int, T) -> Unit)
generateSequence
Возвращает последовательность, которая вызывает функцию для вычисления следующего значения на каждой итерации до тех пор, пока функция не вернёт null.
fun <T : Any> generateSequence( nextFunction: () -> T? ): Sequence<T>
Возвращает последовательность, определённую начальным значением seed и функцией nextFunction, которая вызывается для вычисления следующего значения на основе предыдущего на каждой итерации.
fun <T : Any> generateSequence( seed: T?, nextFunction: (T) -> T? ): Sequence<T>
Возвращает последовательность, определённую функцией seedFunction, которая вызывается для получения начального значения, и функцией nextFunction, которая вызывается для вычисления следующего значения на основе предыдущего на каждой итерации.
fun <T : Any> generateSequence( seedFunction: () -> T?, nextFunction: (T) -> T? ): Sequence<T>
groupBy
Группирует элементы исходной последовательности по ключу, возвращаемому заданной функцией keySelector, применённой к каждому элементу, и возвращает карту, где каждый ключ группы связан со списком соответствующих элементов.
fun <T, K> Sequence<T>.groupBy( keySelector: (T) -> K ): Map<K, List<T>>
Группирует значения, возвращаемые функцией valueTransform, применённой к каждому элементу исходной последовательности, по ключу, возвращаемому заданной функцией keySelector, применённой к элементу, и возвращает карту, где каждый ключ группы связан со списком соответствующих значений.
fun <T, K, V> Sequence<T>.groupBy( keySelector: (T) -> K, valueTransform: (T) -> V ): Map<K, List<V>>
groupByTo
Группирует элементы исходной последовательности по ключу, возвращаемому заданной функцией keySelector, применённой к каждому элементу, и помещает в карту destination каждый ключ группы, связанный со списком соответствующих элементов.
fun <T, K, M : MutableMap<in K, MutableList<T>>> Sequence<T>.groupByTo( destination: M, keySelector: (T) -> K ): M
Группирует значения, возвращаемые функцией valueTransform, применённой к каждому элементу исходной последовательности, по ключу, возвращаемому заданной функцией keySelector, применённой к элементу, и помещает в карту destination каждый ключ группы, связанный со списком соответствующих значений.
fun <T, K, V, M : MutableMap<in K, MutableList<V>>> Sequence<T>.groupByTo( destination: M, keySelector: (T) -> K, valueTransform: (T) -> V ): M
indexOfLast
Возвращает индекс последнего элемента, соответствующего заданному
fun <T> Sequence<T>.indexOfLast(
predicate: (T) -> Boolean
): Int
iterator
Создаёт итератор, лениво возвращающий значения по одному.
fun <T> iterator( block: suspend SequenceScope<T>.() -> Unit ): Iterator<T>
joinTo
joinToString
Создаёт строку из всех элементов, разделяя их с помощью и
fun <T> Sequence<T>.joinToString(
separator: CharSequence = ", ",
prefix: CharSequence = "",
postfix: CharSequence = "",
limit: Int = -1,
truncated: CharSequence = "...",
transform: ((T) -> CharSequence)? = null
): String
last
Возвращает последний элемент.
fun <T> Sequence<T>.last(): T
Возвращает последний элемент, соответствующий заданному
fun <T> Sequence<T>.last(predicate: (T) -> Boolean): T
lastIndexOf
Возвращает последний индекс
fun <T> Sequence<T>.lastIndexOf(element: T): Int
lastOrNull
Возвращает последний элемент, или null если последовательность пустая.
fun <T> Sequence<T>.lastOrNull(): T?
Возвращает последний элемент, соответствующий заданному
fun <T> Sequence<T>.lastOrNull(predicate: (T) -> Boolean): T?
map
Возвращает последовательность, содержащую результаты применения заданной
fun <T, R> Sequence<T>.map(transform: (T) -> R): Sequence<R>
mapIndexed
Возвращает последовательность, содержащую результаты применения заданной
fun <T, R> Sequence<T>.mapIndexed(
transform: (index: Int, T) -> R
): Sequence<R>
mapIndexedNotNull
Возвращает последовательность, содержащую только непустые результаты применения заданной
fun <T, R : Any> Sequence<T>.mapIndexedNotNull(
transform: (index: Int, T) -> R?
): Sequence<R>
mapIndexedNotNullTo
Применяет заданную .
fun <T, R : Any, C : MutableCollection<in R>> Sequence<T>.mapIndexedNotNullTo( destination: C, transform: (index: Int, T) -> R? ): C
mapIndexedTo
Применяет заданную функцию преобразования к каждому элементу и его индексу в исходной последовательности и добавляет результаты в заданное значение назначения.
fun <T, R, C : MutableCollection<in R>> Sequence<T>.mapIndexedTo( destination: C, transform: (index: Int, T) -> R ): C
mapNotNull
Возвращает последовательность, содержащую только результаты применения заданной функции преобразования к каждому элементу в исходной последовательности.
fun <T, R : Any> Sequence<T>.mapNotNull( transform: (T) -> R? ): Sequence<R>
mapNotNullTo
Применяет заданную функцию преобразования к каждому элементу в исходной последовательности и добавляет только ненулевые результаты в заданное значение назначения.
fun <T, R : Any, C : MutableCollection<in R>> Sequence<T>.mapNotNullTo( destination: C, transform: (T) -> R? ): C
mapTo
Применяет заданную функцию преобразования к каждому элементу исходной последовательности и добавляет результаты в заданное значение назначения.
fun <T, R, C : MutableCollection<in R>> Sequence<T>.mapTo( destination: C, transform: (T) -> R ): C
max
Возвращает наибольший элемент.
fun Sequence<Double>.max(): Double
fun Sequence<Double>.max(): Double?
fun Sequence<Float>.max(): Float
fun Sequence<Float>.max(): Float?
fun <T : Comparable<T>> Sequence<T>.max(): T
fun <T : Comparable<T>> Sequence<T>.max(): T?
maxBy
Возвращает первый элемент, дающий наибольшее значение заданной функции.
fun <T, R : Comparable<R>> Sequence<T>.maxBy( selector: (T) -> R ): T
fun <T, R : Comparable<R>> Sequence<T>.maxBy( selector: (T) -> R ): T?
maxByOrNull
Возвращает первый элемент, дающий наибольшее значение заданной функции, или null если элементов нет.
fun <T, R : Comparable<R>> Sequence<T>.maxByOrNull( selector: (T) -> R ): T?
maxOrNull
Возвращает наибольший элемент или null если элементов нет.
fun Sequence<Double>.maxOrNull(): Double?
fun Sequence<Float>.maxOrNull(): Float?
fun <T : Comparable<T>> Sequence<T>.maxOrNull(): T?
maxWith
Возвращает первый элемент, имеющий наибольшее значение согласно предоставленному компаратору.
fun <T> Sequence<T>.maxWith(comparator: Comparator<in T>): T
fun <T> Sequence<T>.maxWith(comparator: Comparator<in T>): T?
maxWithOrNull
Возвращает первый элемент, имеющий наибольшее значение согласно предоставленному компаратору или null если элементов нет.
fun <T> Sequence<T>.maxWithOrNull( comparator: Comparator<in T> ): T?
min
Возвращает наименьший элемент.
fun Sequence<Double>.min(): Double
fun Sequence<Double>.min(): Double?
fun Sequence<Float>.min(): Float
fun Sequence<Float>.min(): Float?
fun <T : Comparable<T>> Sequence<T>.min(): T
fun <T : Comparable<T>> Sequence<T>.min(): T?
minBy
Возвращает первый элемент, дающий наименьшее значение заданной функции.
fun <T, R : Comparable<R>> Sequence<T>.minBy( selector: (T) -> R ): T
fun <T, R : Comparable<R>> Sequence<T>.minBy( selector: (T) -> R ): T?
minByOrNull
Возвращает первый элемент, дающий наименьшее значение заданной функции, или null если элементов нет.
fun <T, R : Comparable<R>> Sequence<T>.minByOrNull( selector: (T) -> R ): T?
minOf
Возвращает наименьшее значение среди всех значений, полученных функцией selector, применённой к каждому элементу последовательности.
fun <T> Sequence<T>.minOf(selector: (T) -> Double): Double
fun <T> Sequence<T>.minOf(selector: (T) -> Float): Float
fun <T, R : Comparable<R>> Sequence<T>.minOf( selector: (T) -> R ): R
minOfOrNull
Возвращает наименьшее значение среди всех значений, полученных функцией selector, применённой к каждому элементу последовательности, или null если элементов нет.
fun <T> Sequence<T>.minOfOrNull( selector: (T) -> Double ): Double?
fun <T> Sequence<T>.minOfOrNull( selector: (T) -> Float ): Float?
fun <T, R : Comparable<R>> Sequence<T>.minOfOrNull( selector: (T) -> R ): R?
minOfWith
Возвращает наименьшее значение согласно предоставленному компаратору среди всех значений, полученных функцией selector, применённой к каждому элементу последовательности.
fun <T, R> Sequence<T>.minOfWith( comparator: Comparator<in R>, selector: (T) -> R ): R
minOfWithOrNull
Возвращает наименьшее значение согласно предоставленному компаратору среди всех значений, полученных функцией selector, применённой к каждому элементу последовательности, или null если элементов нет.
fun <T, R> Sequence<T>.minOfWithOrNull( comparator: Comparator<in R>, selector: (T) -> R ): R?
minOrNull
Возвращает наименьший элемент или null если элементов нет.
fun Sequence<Double>.minOrNull(): Double?
fun Sequence<Float>.minOrNull(): Float?
fun <T : Comparable<T>> Sequence<T>.minOrNull(): T?
minus
Возвращает последовательность, содержащую все элементы исходной последовательности без первого вхождения заданного элемента.
operator fun <T> Sequence<T>.minus(element: T): Sequence<T>
Возвращает последовательность, содержащую все элементы исходной последовательности, за исключением элементов, содержащихся в заданном массиве элементов.
operator fun <T> Sequence<T>.minus( elements: Array<out T> ): Sequence<T>
Возвращает последовательность, содержащую все элементы исходной последовательности, за исключением элементов, содержащихся в заданном наборе элементов.
operator fun <T> Sequence<T>.minus( elements: Iterable<T> ): Sequence<T>
Возвращает последовательность, содержащую все элементы исходной последовательности, за исключением элементов, содержащихся в заданной последовательности элементов.
operator fun <T> Sequence<T>.minus( elements: Sequence<T> ): Sequence<T>
minusElement
Возвращает последовательность, содержащую все элементы исходной последовательности без первого вхождения заданного элемента.
fun <T> Sequence<T>.minusElement(element: T): Sequence<T>
minWith
Возвращает первый элемент с наименьшим значением согласно предоставленному компаратору.
fun <T> Sequence<T>.minWith(comparator: Comparator<in T>): T
fun <T> Sequence<T>.minWith(comparator: Comparator<in T>): T?
minWithOrNull
Возвращает первый элемент с наименьшим значением согласно предоставленному компаратору или null , если элементов нет.
fun <T> Sequence<T>.minWithOrNull( comparator: Comparator<in T> ): T?
none
Возвращает true , если последовательность не имеет элементов.
fun <T> Sequence<T>.none(): Boolean
Возвращает true , если ни один элемент не соответствует заданному предикату.
fun <T> Sequence<T>.none(predicate: (T) -> Boolean): Boolean
onEach
Возвращает последовательность, которая выполняет заданное действие над каждым элементом исходной последовательности по мере их прохождения.
fun <T> Sequence<T>.onEach(action: (T) -> Unit): Sequence<T>
onEachIndexed
Возвращает последовательность, которая выполняет заданное действие над каждым элементом исходной последовательности по мере их прохождения.
fun <T> Sequence<T>.onEachIndexed( action: (index: Int, T) -> Unit ): Sequence<T>
orEmpty
Возвращает эту последовательность, если она не null, и пустую последовательность в противном случае.
fun <T> Sequence<T>?.orEmpty(): Sequence<T>
partition
plus
Возвращает последовательность, содержащую все элементы исходной последовательности, а затем заданный элемент.
operator fun <T> Sequence<T>.plus(element: T): Sequence<T>
Возвращает последовательность, содержащую все элементы исходной последовательности, а затем все элементы заданного массива элементов.
operator fun <T> Sequence<T>.plus( elements: Array<out T> ): Sequence<T>
Возвращает последовательность, содержащую все элементы исходной последовательности, а затем все элементы заданного набора элементов.
operator fun <T> Sequence<T>.plus( elements: Iterable<T> ): Sequence<T>
Возвращает последовательность, содержащую все элементы исходной последовательности, а затем все элементы заданной последовательности элементов.
operator fun <T> Sequence<T>.plus( elements: Sequence<T> ): Sequence<T>
plusElement
Возвращает последовательность, содержащую все элементы исходной последовательности, а затем указанный элемент.
fun <T> Sequence<T>.plusElement(element: T): Sequence<T>
reduce
Накапливает значение, начиная с первого элемента и применяя операцию слева направо к текущему накопленному значению и каждому элементу.
fun <S, T : S> Sequence<T>.reduce( operation: (acc: S, T) -> S ): S
reduceIndexed
Накапливает значение, начиная с первого элемента и применяя операцию слева направо к текущему накопленному значению и каждому элементу с его индексом в исходной последовательности.
fun <S, T : S> Sequence<T>.reduceIndexed( operation: (index: Int, acc: S, T) -> S ): S
reduceIndexedOrNull
Накапливает значение, начиная с первого элемента и применяя операцию слева направо к текущему накопленному значению и каждому элементу с его индексом в исходной последовательности.
fun <S, T : S> Sequence<T>.reduceIndexedOrNull( operation: (index: Int, acc: S, T) -> S ): S?
reduceOrNull
Накапливает значение, начиная с первого элемента и применяя операцию слева направо к текущему накопленному значению и каждому элементу.
fun <S, T : S> Sequence<T>.reduceOrNull( operation: (acc: S, T) -> S ): S?
requireNoNulls
Возвращает исходную коллекцию, содержащую все не-null элементы, выбрасывая IllegalArgumentException, если есть какие-либо null элементы.
fun <T : Any> Sequence<T?>.requireNoNulls(): Sequence<T>
runningFold
Возвращает последовательность, содержащую последовательные накопленные значения, полученные путём применения операции слева направо к каждому элементу и текущему накопленному значению, начиная со значения initial.
fun <T, R> Sequence<T>.runningFold( initial: R, operation: (acc: R, T) -> R ): Sequence<R>
runningFoldIndexed
Возвращает последовательность, содержащую последовательные накопленные значения, полученные путём применения операции слева направо к каждому элементу, его индексу в исходной последовательности и текущему накопленному значению, начиная со значения initial.
fun <T, R> Sequence<T>.runningFoldIndexed( initial: R, operation: (index: Int, acc: R, T) -> R ): Sequence<R>
runningReduce
Возвращает последовательность, содержащую последовательные накопленные значения, полученные путём применения операции слева направо к каждому элементу и текущему накопленному значению, начиная с первого элемента этой последовательности.
fun <S, T : S> Sequence<T>.runningReduce( operation: (acc: S, T) -> S ): Sequence<S>
runningReduceIndexed
Возвращает последовательность, содержащую последовательные накопленные значения, полученные путём применения операции слева направо к каждому элементу, его индексу в исходной последовательности и текущему накопленному значению, начиная с первого элемента этой последовательности.
fun <S, T : S> Sequence<T>.runningReduceIndexed( operation: (index: Int, acc: S, T) -> S ): Sequence<S>
scan
scanIndexed
Возвращает последовательность, содержащую последовательные накопленные значения, полученные путём применения операции слева направо к каждому элементу, его индексу в исходной последовательности и текущему накопленному значению, начиная со значения initial.
fun <T, R> Sequence<T>.scanIndexed( initial: R, operation: (index: Int, acc: R, T) -> R ): Sequence<R>
последовательность
Создаёт последовательность, лениво возвращающую значения по одному.
fun <T> sequence( block: suspend SequenceScope<T>.() -> Unit ): Sequence<T>
Последовательность
На основе функции итератор создаёт последовательность, возвращающую значения через предоставленный функцией итератор. Значения вычисляются лениво, и последовательность может быть бесконечной.
fun <T> Sequence(iterator: () -> Iterator<T>): Sequence<T>
sequenceOf
Создаёт последовательность, возвращающую указанные значения.
fun <T> sequenceOf(vararg elements: T): Sequence<T>
перемешанная
Возвращает последовательность, содержащую элементы исходной последовательности в случайном порядке.
fun <T> Sequence<T>.shuffled(): Sequence<T>
Возвращает последовательность, содержащую элементы исходной последовательности в случайном порядке, используя заданный источник случайности — random.
fun <T> Sequence<T>.shuffled(random: Random): Sequence<T>
единственный
Возвращает единственный элемент или выбрасывает исключение, если последовательность пуста или содержит более одного элемента.
fun <T> Sequence<T>.single(): T
Возвращает единственный элемент, соответствующий заданному предикату, или выбрасывает исключение, если соответствующих элементов нет или их больше одного.
fun <T> Sequence<T>.single(predicate: (T) -> Boolean): T
единственный_или_null
Возвращает единственный элемент, или null если последовательность пуста или содержит более одного элемента.
fun <T> Sequence<T>.singleOrNull(): T?
Возвращает единственный элемент, соответствующий заданному предикату, или null если элемент не найден или найдено больше одного элемента.
fun <T> Sequence<T>.singleOrNull( predicate: (T) -> Boolean ): T?
sumByDouble
Возвращает сумму всех значений, полученных функцией
fun <T> Sequence<T>.sumByDouble(
selector: (T) -> Double
): Double
sumOf
Возвращает сумму всех значений, полученных функцией
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4) fun <T> Sequence<T>.sumOf(selector: (T) -> Double): Double
fun <T> Sequence<T>.sumOf(selector: (T) -> Int): Int
fun <T> Sequence<T>.sumOf(selector: (T) -> Long): Long
fun <T> Sequence<T>.sumOf(selector: (T) -> UInt): UInt
fun <T> Sequence<T>.sumOf(selector: (T) -> ULong): ULong
fun <T> Sequence<T>.sumOf( selector: (T) -> BigDecimal ): BigDecimal
fun <T> Sequence<T>.sumOf( selector: (T) -> BigInteger ): BigInteger
take
Возвращает последовательность, содержащую первые
fun <T> Sequence<T>.take(n: Int): Sequence<T>
takeWhile
Возвращает последовательность, содержащую первые элементы, удовлетворяющие заданному
fun <T> Sequence<T>.takeWhile(
predicate: (T) -> Boolean
): Sequence<T>
toCollection
Добавляет все элементы в указанную
fun <T, C : MutableCollection<in T>> Sequence<T>.toCollection(
destination: C
): C
zip
Возвращает последовательность значений, построенных из элементов последовательности this и последовательности other с одинаковым индексом. Результирующая последовательность заканчивается, как только заканчивается самая короткая входная последовательность.
infix fun <T, R> Sequence<T>.zip( other: Sequence<R> ): Sequence<Pair<T, R>>
Возвращает последовательность значений, построенных из элементов последовательности this и последовательности other с одинаковым индексом с использованием предоставленной функции преобразования transform, применяемой к каждой паре элементов. Результирующая последовательность заканчивается, как только заканчивается самая короткая входная последовательность.
fun <T, R, V> Sequence<T>.zip( other: Sequence<R>, transform: (a: T, b: R) -> V ): Sequence<V>
zipWithNext
Возвращает последовательность пар каждого двух смежных элементов в этой последовательности.
fun <T> Sequence<T>.zipWithNext(): Sequence<Pair<T, T>>
Возвращает последовательность, содержащую результаты применения данной функции преобразования transform к каждой паре двух смежных элементов в этой последовательности.
fun <T, R> Sequence<T>.zipWithNext( transform: (a: T, b: T) -> R ): Sequence<R>
© 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.sequences/