chunked
fun <T> Sequence<T>.chunked(size: Int): Sequence<List<T>>
Разбивает эту последовательность на последовательность списков, каждый из которых не превышает заданного размера.
Последний список в результирующей последовательности может содержать меньше элементов, чем заданный размер.
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val words = "one two three four five six seven eight nine ten".split(' ')
val chunks = words.chunked(3)
println(chunks) // [[one, two, three], [four, five, six], [seven, eight, nine], [ten]]
//sampleEnd
}Параметры
size -
количество элементов для взятия в каждом списке, должно быть положительным и может быть больше, чем количество элементов в этой последовательности.
Операция является промежуточной и состоятельной.
fun <T, R> Sequence<T>.chunked( size: Int, transform: (List<T>) -> R ): Sequence<R>
Разбивает эту последовательность на несколько списков, каждый из которых не превышает заданного размера и применяет заданную функцию преобразования к каждому из них.
import java.util.Locale
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val codonTable = mapOf("ATT" to "Isoleucine", "CAA" to "Glutamine", "CGC" to "Arginine", "GGC" to "Glycine")
val dnaFragment = "ATTCGCGGCCGCCAA"
val proteins = dnaFragment.chunked(3) { codon: CharSequence -> codonTable[codon.toString()] ?: error("Unknown codon") }
println(proteins) // [Isoleucine, Arginine, Glycine, Arginine, Glutamine]
//sampleEnd
}Параметры
size -
количество элементов для взятия в каждом списке, должно быть положительным и может быть больше, чем количество элементов в этой последовательности.
Операция является промежуточной и состоятельной.
Возвращаемое значение
последовательность результатов применения преобразования к каждому списку.
Обратите внимание, что список, переданный в функцию преобразования, является временным и действителен только внутри этой функции. Вы не должны хранить его или каким-либо образом допускать его выход за пределы функции, если вы не сделали его моментальную копию. Последний список может содержать меньше элементов, чем заданный размер.
© 2010–2022 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/chunked.html