Пакет 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
Последовательность, возвращающая значения через свой итератор. Значения вычисляются лениво, и последовательность потенциально бесконечна.
interface Sequence<out T>
SequenceBuilder
typealias SequenceBuilder<T> = SequenceScope<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
Заполняет и возвращает изменяемый map парами ключ-значение, где ключ предоставляется функцией keySelector, применённой к каждому элементу заданной последовательности, а значение — сам элемент.
fun <T, K, M : MutableMap<in K, in T>> Sequence<T>.associateByTo( destination: M, keySelector: (T) -> K ): M
Заполняет и возвращает изменяемый map парами ключ-значение, где ключ предоставляется функцией 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
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
buildIterator
fun <T> buildIterator( builderAction: suspend SequenceScope<T>.() -> Unit ): Iterator<T>
buildSequence
fun <T> buildSequence( builderAction: suspend SequenceScope<T>.() -> Unit ): Sequence<T>
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
Возвращает последовательность, содержащую только элементы из заданной последовательности, имеющие уникальные ключи, возвращаемые заданной функцией selector.
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
filterIsInstance
Возвращает последовательность, содержащую все элементы, являющиеся экземплярами указанного параметра типа R.
fun <R> Sequence<*>.filterIsInstance(): Sequence<R>
Возвращает последовательность, содержащую все элементы, являющиеся экземплярами указанного класса.
fun <R> Sequence<*>.filterIsInstance( klass: Class<R> ): Sequence<R>
filterIsInstanceTo
Добавляет все элементы, являющиеся экземплярами указанного параметра типа R, к заданному назначению.
fun <R, C : MutableCollection<in R>> Sequence<*>.filterIsInstanceTo( destination: C ): C
Добавляет все элементы, являющиеся экземплярами указанного класса, к заданному назначению.
fun <C : MutableCollection<in R>, R> Sequence<*>.filterIsInstanceTo( destination: C, klass: Class<R> ): C
filterNot
Возвращает последовательность, содержащую все элементы, не соответствующие заданному предикату.
fun <T> Sequence<T>.filterNot( predicate: (T) -> Boolean ): Sequence<T>
filterNotNull
Возвращает последовательность, содержащую все элементы, которые не являются null.
fun <T : Any> Sequence<T?>.filterNotNull(): Sequence<T>
filterNotNullTo
Добавляет все элементы, которые не являются null, к заданному назначению.
fun <C : MutableCollection<in T>, T : Any> Sequence<T?>.filterNotNullTo( destination: C ): C
filterNotTo
Добавляет все элементы, не соответствующие заданному предикату, к заданному назначению.
fun <T, C : MutableCollection<in T>> Sequence<T>.filterNotTo( destination: C, predicate: (T) -> Boolean ): C
filterTo
Добавляет все элементы, соответствующие заданному предикату, к заданному назначению.
fun <T, C : MutableCollection<in T>> Sequence<T>.filterTo( destination: C, predicate: (T) -> Boolean ): C
find
Возвращает первый элемент, соответствующий заданному предикату, или null если такой элемент не найден.
fun <T> Sequence<T>.find(predicate: (T) -> Boolean): T?
findLast
Возвращает последний элемент, соответствующий заданному предикату, или null если такой элемент не найден.
fun <T> Sequence<T>.findLast(predicate: (T) -> Boolean): T?
first
Возвращает первый элемент.
fun <T> Sequence<T>.first(): T
Возвращает первый элемент, соответствующий заданному предикату.
fun <T> Sequence<T>.first(predicate: (T) -> Boolean): T
firstOrNull
Возвращает первый элемент или null если последовательность пуста.
fun <T> Sequence<T>.firstOrNull(): T?
Возвращает первый элемент, соответствующий заданному предикату, или null если элемент не найден.
fun <T> Sequence<T>.firstOrNull( predicate: (T) -> Boolean ): T?
flatMap
Возвращает единую последовательность всех элементов из результатов функции transform, вызываемой для каждого элемента исходной последовательности.
fun <T, R> Sequence<T>.flatMap( transform: (T) -> Iterable<R> ): Sequence<R>
fun <T, R> Sequence<T>.flatMap( transform: (T) -> Sequence<R> ): Sequence<R>
flatMapIndexed
Возвращает единую последовательность всех элементов, полученных в результате работы функции transform, вызываемой для каждого элемента и его индекса в исходной последовательности.
fun <T, R> Sequence<T>.flatMapIndexed( transform: (index: Int, T) -> Iterable<R> ): Sequence<R>
fun <T, R> Sequence<T>.flatMapIndexed( transform: (index: Int, T) -> Sequence<R> ): Sequence<R>
flatMapIndexedTo
Добавляет все элементы, полученные в результате работы функции transform, вызываемой для каждого элемента и его индекса в исходной последовательности, в заданный destination.
fun <T, R, C : MutableCollection<in R>> Sequence<T>.flatMapIndexedTo( destination: C, transform: (index: Int, T) -> Iterable<R> ): C
fun <T, R, C : MutableCollection<in R>> Sequence<T>.flatMapIndexedTo( destination: C, transform: (index: Int, T) -> Sequence<R> ): C
flatMapTo
Добавляет все элементы, полученные в результате работы функции transform, вызываемой для каждого элемента исходной последовательности, в заданный destination.
fun <T, R, C : MutableCollection<in R>> Sequence<T>.flatMapTo( destination: C, transform: (T) -> Iterable<R> ): C
fun <T, R, C : MutableCollection<in R>> Sequence<T>.flatMapTo( destination: C, transform: (T) -> Sequence<R> ): C
flatten
Возвращает последовательность всех элементов из всех последовательностей в этой последовательности.
fun <T> Sequence<Sequence<T>>.flatten(): Sequence<T>
Возвращает последовательность всех элементов из всех итерируемых объектов в этой последовательности.
fun <T> Sequence<Iterable<T>>.flatten(): Sequence<T>
fold
Накапливает значение, начиная с начального значения и применяя операцию слева направо к текущему накопленному значению и каждому элементу.
fun <T, R> Sequence<T>.fold( initial: R, operation: (acc: R, T) -> R ): R
foldIndexed
Накапливает значение, начиная с начального значения и применяя операцию слева направо к текущему накопленному значению и каждому элементу с его индексом в исходной последовательности.
fun <T, R> Sequence<T>.foldIndexed( initial: R, operation: (index: Int, acc: R, T) -> R ): R
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>
Возвращает последовательность, определённую начальным значением начальное_значение и функцией следующая_функция, которая вызывается для расчёта следующего значения на основе предыдущего на каждой итерации.
fun <T : Any> generateSequence( seed: T?, nextFunction: (T) -> T? ): Sequence<T>
Возвращает последовательность, определённую функцией функция_начального_значения, которая вызывается для получения начального значения, и функция_следующего_значения, которая вызывается для расчёта следующего значения на основе предыдущего на каждой итерации.
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, применённой к каждому элементу, и помещает в карту назначение каждый ключ группы, связанный со списком соответствующих элементов.
fun <T, K, M : MutableMap<in K, MutableList<T>>> Sequence<T>.groupByTo( destination: M, keySelector: (T) -> K ): M
Группирует значения, возвращаемые функцией valueTransform, применённой к каждому элементу исходной последовательности, по ключу, возвращаемому заданной функцией keySelector, применённой к элементу, и помещает в карту назначение каждый ключ группы, связанный со списком соответствующих значений.
fun <T, K, V, M : MutableMap<in K, MutableList<V>>> Sequence<T>.groupByTo( destination: M, keySelector: (T) -> K, valueTransform: (T) -> V ): M
groupingBy
Создаёт источник Grouping из последовательности для последующего использования с операциями группирования и сворачивания с использованием указанной функции keySelector для извлечения ключа из каждого элемента.
fun <T, K> Sequence<T>.groupingBy( keySelector: (T) -> K ): Grouping<T, K>
ifEmpty
Возвращает последовательность, которая итерируется по элементам либо этой последовательности, либо, если эта последовательность окажется пустой, последовательности, возвращаемой функцией значение_по_умолчанию.
fun <T> Sequence<T>.ifEmpty( defaultValue: () -> Sequence<T> ): Sequence<T>
indexOf
Возвращает первый индекс элемента элемент, или -1, если последовательность не содержит элемент.
fun <T> Sequence<T>.indexOf(element: T): Int
indexOfFirst
Возвращает индекс первого элемента, соответствующего заданному предикату, или -1, если последовательность не содержит такого элемента.
fun <T> Sequence<T>.indexOfFirst( predicate: (T) -> Boolean ): Int
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
Возвращает последовательность, содержащую только те результаты, которые не равны null, от применения заданной
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
Применяет заданную функцию transform к каждому элементу и его индексу в исходной последовательности и добавляет результаты в заданное назначение.
fun <T, R, C : MutableCollection<in R>> Sequence<T>.mapIndexedTo( destination: C, transform: (index: Int, T) -> R ): C
mapNotNull
Возвращает последовательность, содержащую только результаты применения заданной функции transform к каждому элементу в исходной последовательности.
fun <T, R : Any> Sequence<T>.mapNotNull( transform: (T) -> R? ): Sequence<R>
mapNotNullTo
Применяет заданную функцию transform к каждому элементу в исходной последовательности и добавляет только непустые результаты в заданное назначение.
fun <T, R : Any, C : MutableCollection<in R>> Sequence<T>.mapNotNullTo( destination: C, transform: (T) -> R? ): C
mapTo
Применяет заданную функцию transform к каждому элементу исходной последовательности и добавляет результаты в заданное назначение.
fun <T, R, C : MutableCollection<in R>> Sequence<T>.mapTo( destination: C, transform: (T) -> R ): C
max
fun Sequence<Double>.max(): Double?
fun Sequence<Float>.max(): Float?
fun <T : Comparable<T>> Sequence<T>.max(): T?
maxBy
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?
maxOf
Возвращает наибольшее значение среди всех значений, полученных функцией selector, примененной к каждому элементу в последовательности.
fun <T> Sequence<T>.maxOf(selector: (T) -> Double): Double
fun <T> Sequence<T>.maxOf(selector: (T) -> Float): Float
fun <T, R : Comparable<R>> Sequence<T>.maxOf( selector: (T) -> R ): R
maxOfOrNull
Возвращает наибольшее значение среди всех значений, полученных функцией selector, примененной к каждому элементу в последовательности, или null если элементов нет.
fun <T> Sequence<T>.maxOfOrNull( selector: (T) -> Double ): Double?
fun <T> Sequence<T>.maxOfOrNull( selector: (T) -> Float ): Float?
fun <T, R : Comparable<R>> Sequence<T>.maxOfOrNull( selector: (T) -> R ): R?
maxOfWith
Возвращает наибольшее значение согласно предоставленному компаратору среди всех значений, полученных функцией selector, примененной к каждому элементу в последовательности.
fun <T, R> Sequence<T>.maxOfWith( comparator: Comparator<in R>, selector: (T) -> R ): R
maxOfWithOrNull
Возвращает наибольшее значение согласно предоставленному компаратору среди всех значений, полученных функцией selector, примененной к каждому элементу в последовательности, или null если элементов нет.
fun <T, R> Sequence<T>.maxOfWithOrNull( comparator: Comparator<in R>, selector: (T) -> R ): R?
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?
maxWithOrNull
Возвращает первый элемент с наибольшим значением в соответствии с предоставленным компаратором или null , если элементов нет.
fun <T> Sequence<T>.maxWithOrNull( comparator: Comparator<in T> ): T?
min
fun Sequence<Double>.min(): Double?
fun Sequence<Float>.min(): Float?
fun <T : Comparable<T>> Sequence<T>.min(): T?
minBy
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>
Возвращает последовательность, содержащую все элементы исходной последовательности, за исключением элементов, содержащихся в заданном массиве elements.
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?
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
Возвращает последовательность, содержащую последовательные значения накопления, генерируемые путем применения operation слева направо к каждому элементу и текущему значению накопителя, которое начинается со значения initial.
fun <T, R> Sequence<T>.runningFold( initial: R, operation: (acc: R, T) -> R ): Sequence<R>
runningFoldIndexed
Возвращает последовательность, содержащую последовательные значения накопления, генерируемые путем применения operation слева направо к каждому элементу, его индексу в исходной последовательности и текущему значению накопителя, которое начинается со значения initial.
fun <T, R> Sequence<T>.runningFoldIndexed( initial: R, operation: (index: Int, acc: R, T) -> R ): Sequence<R>
runningReduce
Возвращает последовательность, содержащую последовательные значения накопления, генерируемые путем применения operation слева направо к каждому элементу и текущему значению накопителя, которое начинается с первого элемента этой последовательности.
fun <S, T : S> Sequence<T>.runningReduce( operation: (acc: S, T) -> S ): Sequence<S>
runningReduceIndexed
Возвращает последовательность, содержащую последовательные значения накопления, генерируемые путем применения operation слева направо к каждому элементу, его индексу в исходной последовательности и текущему значению накопителя, которое начинается с первого элемента этой последовательности.
fun <S, T : S> Sequence<T>.runningReduceIndexed( operation: (index: Int, acc: S, T) -> S ): Sequence<S>
scan
Возвращает последовательность, содержащую последовательные значения накопления, генерируемые путем применения operation слева направо к каждому элементу и текущему значению накопителя, которое начинается со значения initial.
fun <T, R> Sequence<T>.scan( initial: R, operation: (acc: R, T) -> R ): Sequence<R>
scanIndexed
Возвращает последовательность, содержащую последовательные значения накопления, генерируемые путем применения operation слева направо к каждому элементу, его индексу в исходной последовательности и текущему значению накопителя, которое начинается со значения initial.
fun <T, R> Sequence<T>.scanIndexed( initial: R, operation: (index: Int, acc: R, T) -> R ): Sequence<R>
scanReduce
fun <S, T : S> Sequence<T>.scanReduce( operation: (acc: S, T) -> S ): Sequence<S>
scanReduceIndexed
fun <S, T : S> Sequence<T>.scanReduceIndexed( operation: (index: Int, acc: S, T) -> S ): Sequence<S>
sequence
Построит Sequence лениво, выдавая значения по одному.
fun <T> sequence( block: suspend SequenceScope<T>.() -> Unit ): Sequence<T>
Sequence
sequenceOf
Создает последовательность, которая возвращает указанные значения.
fun <T> sequenceOf(vararg elements: T): Sequence<T>
shuffled
Возвращает последовательность, которая случайным образом перемешивает элементы этой последовательности.
fun <T> Sequence<T>.shuffled(): Sequence<T>
Возвращает последовательность, которая случайным образом перемешивает элементы этой последовательности, используя указанный экземпляр random в качестве источника случайности.
fun <T> Sequence<T>.shuffled(random: Random): Sequence<T>
single
Возвращает единственный элемент или вызывает исключение, если последовательность пуста или содержит более одного элемента.
fun <T> Sequence<T>.single(): T
Возвращает единственный элемент, соответствующий заданному predicate, или вызывает исключение, если нет ни одного или более одного совпадающего элемента.
fun <T> Sequence<T>.single(predicate: (T) -> Boolean): T
singleOrNull
Возвращает единственный элемент или null если последовательность пуста или содержит более одного элемента.
fun <T> Sequence<T>.singleOrNull(): T?
Возвращает единственный элемент, соответствующий заданному predicate, или null если элемент не найден или найдено более одного элемента.
fun <T> Sequence<T>.singleOrNull( predicate: (T) -> Boolean ): T?
sorted
Возвращает последовательность, которая выдает элементы этой последовательности, отсортированные в соответствии с их естественным порядком сортировки.
fun <T : Comparable<T>> Sequence<T>.sorted(): Sequence<T>
sortedBy
Возвращает последовательность, которая выдает элементы этой последовательности, отсортированные в соответствии с естественным порядком сортировки значения, возвращаемого указанной функцией selector.
fun <T, R : Comparable<R>> Sequence<T>.sortedBy( selector: (T) -> R? ): Sequence<T>
sortedByDescending
Возвращает последовательность, которая выдает элементы этой последовательности, отсортированные по убыванию в соответствии с естественным порядком сортировки значения, возвращаемого указанной функцией selector.
fun <T, R : Comparable<R>> Sequence<T>.sortedByDescending( selector: (T) -> R? ): Sequence<T>
sortedDescending
Возвращает последовательность, которая выдает элементы этой последовательности, отсортированные по убыванию в соответствии с их естественным порядком сортировки.
fun <T : Comparable<T>> Sequence<T>.sortedDescending(): Sequence<T>
sortedWith
Возвращает последовательность, которая выдает элементы этой последовательности, отсортированные в соответствии с указанным comparator.
fun <T> Sequence<T>.sortedWith( comparator: Comparator<in T> ): Sequence<T>
sum
Возвращает сумму всех элементов в последовательности.
fun Sequence<Byte>.sum(): Int
fun Sequence<Short>.sum(): Int
fun Sequence<Int>.sum(): Int
fun Sequence<Long>.sum(): Long
fun Sequence<Float>.sum(): Float
fun Sequence<Double>.sum(): Double
fun Sequence<UInt>.sum(): UInt
fun Sequence<ULong>.sum(): ULong
fun Sequence<UByte>.sum(): UInt
fun Sequence<UShort>.sum(): UInt
sumBy
Возвращает сумму всех значений, полученных с помощью функции selector, примененной к каждому элементу в последовательности.
fun <T> Sequence<T>.sumBy(selector: (T) -> Int): Int
sumByDouble
Возвращает сумму всех значений, полученных с помощью функции selector, примененной к каждому элементу в последовательности.
fun <T> Sequence<T>.sumByDouble( selector: (T) -> Double ): Double
sumOf
Возвращает сумму всех значений, полученных с помощью функции selector, примененной к каждому элементу в последовательности.
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
takeWhile
Возвращает последовательность, содержащую первые элементы, удовлетворяющие заданному
fun <T> Sequence<T>.takeWhile(
predicate: (T) -> Boolean
): Sequence<T>
toCollection
Добавляет все элементы в заданную
fun <T, C : MutableCollection<in T>> Sequence<T>.toCollection(
destination: C
): C
toHashSet
Возвращает новый HashSet всех элементов.
fun <T> Sequence<T>.toHashSet(): HashSet<T>
toList
Возвращает список содержащий все элементы.
fun <T> Sequence<T>.toList(): List<T>
toMutableList
Возвращает новый MutableList, заполненный всеми элементами этой последовательности.
fun <T> Sequence<T>.toMutableList(): MutableList<T>
toMutableSet
Возвращает новый MutableSet, содержащий все уникальные элементы из заданной последовательности.
fun <T> Sequence<T>.toMutableSet(): MutableSet<T>
toSet
Возвращает множество всех элементов.
fun <T> Sequence<T>.toSet(): Set<T>
toSortedSet
Возвращает новый SortedSet всех элементов.
fun <T : Comparable<T>> Sequence<T>.toSortedSet(): SortedSet<T>
fun <T> Sequence<T>.toSortedSet( comparator: Comparator<in T> ): SortedSet<T>
unzip
Возвращает пару списков, где первый список составлен из первых значений каждой пары из этой последовательности, второй список составлен из вторых значений каждой пары из этой последовательности.
fun <T, R> Sequence<Pair<T, R>>.unzip(): Pair<List<T>, List<R>>
windowed
Возвращает последовательность снимков окна заданного , где каждый снимок — это список.
fun <T> Sequence<T>.windowed( size: Int, step: Int = 1, partialWindows: Boolean = false ): Sequence<List<T>>
Возвращает последовательность результатов применения заданной , скользящего по этой последовательности с заданным
fun <T, R> Sequence<T>.windowed(
size: Int,
step: Int = 1,
partialWindows: Boolean = false,
transform: (List<T>) -> R
): Sequence<R>
withIndex
Возвращает последовательность, которая оборачивает каждый элемент исходной последовательности в IndexedValue, содержащий индекс этого элемента и сам элемент.
fun <T> Sequence<T>.withIndex(): Sequence<IndexedValue<T>>
zip
Возвращает последовательность значений, созданных из элементов this последовательности и
infix fun <T, R> Sequence<T>.zip(
other: Sequence<R>
): Sequence<Pair<T, R>>
Возвращает последовательность значений, созданных из элементов this последовательности и , применённой к каждой паре элементов. Результирующая последовательность заканчивается, как только заканчивается самая короткая входная последовательность.
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>>
Возвращает последовательность, содержащую результаты применения заданной
fun <T, R> Sequence<T>.zipWithNext(
transform: (a: T, b: T) -> R
): Sequence<R>
© 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.sequences/index.html