Spec-Zone.ru › Kotlin 1.4

windowed

kotlin-stdlib / kotlin.text / windowed
Требования к платформе и версии: JVM (1.2), JS (1.2), Native (1.2)
fun CharSequence.windowed(
    size: Int, 
    step: Int = 1, 
    partialWindows: Boolean = false
): List<String>

Возвращает список снимков окна заданного размера, скользящего по этой последовательности символов с заданным шагом, где каждый снимок — строка.

Несколько последних строк могут содержать меньше символов, чем заданный размер.

И размер, и шаг должны быть положительными и могут быть больше числа элементов в этой последовательности символов.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val sequence = generateSequence(1) { it + 1 }

val windows = sequence.windowed(size = 5, step = 1)
println(windows.take(4).toList()) // [[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8]]

val moreSparseWindows = sequence.windowed(size = 5, step = 3)
println(moreSparseWindows.take(4).toList()) // [[1, 2, 3, 4, 5], [4, 5, 6, 7, 8], [7, 8, 9, 10, 11], [10, 11, 12, 13, 14]]

val fullWindows = sequence.take(10).windowed(size = 5, step = 3)
println(fullWindows.toList()) // [[1, 2, 3, 4, 5], [4, 5, 6, 7, 8]]

val partialWindows = sequence.take(10).windowed(size = 5, step = 3, partialWindows = true)
println(partialWindows.toList()) // [[1, 2, 3, 4, 5], [4, 5, 6, 7, 8], [7, 8, 9, 10], [10]]
//sampleEnd
}

Параметры

size - количество элементов в каждом окне

step - количество элементов, на которое сдвигается окно на каждом шаге, по умолчанию 1

partialWindows - управляет сохранением частичных окон в конце, если они есть, по умолчанию false, что означает, что частичные окна не сохраняются

Требования к платформе и версии: JVM (1.2), JS (1.2), Native (1.2)
fun <R> CharSequence.windowed(
    size: Int, 
    step: Int = 1, 
    partialWindows: Boolean = false, 
    transform: (CharSequence) -> R
): List<R>

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

Обратите внимание, что последовательность символов, передаваемая функции преобразования, является временной и действительна только внутри этой функции. Вы не должны её сохранять или как-либо позволять ей выходить за пределы этой функции, если только не сделали её снимок. Несколько последних последовательностей символов могут содержать меньше символов, чем заданный размер.

И размер, и шаг должны быть положительными и могут быть больше числа элементов в этой последовательности символов.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val dataPoints = sequenceOf(10, 15, 18, 25, 19, 21, 14, 8, 5)

val averaged = dataPoints.windowed(size = 4, step = 1, partialWindows = true) { window -> window.average() }
println(averaged.toList()) // [17.0, 19.25, 20.75, 19.75, 15.5, 12.0, 9.0, 6.5, 5.0]

val averagedNoPartialWindows = dataPoints.windowed(size = 4, step = 1).map { it.average() }
println(averagedNoPartialWindows.toList()) // [17.0, 19.25, 20.75, 19.75, 15.5, 12.0]
//sampleEnd
}

Параметры

size - количество элементов в каждом окне

step - количество элементов, на которое сдвигается окно на каждом шаге, по умолчанию 1

partialWindows - управляет сохранением частичных окон в конце, если они есть, по умолчанию false, что означает, что частичные окна не сохраняются

© 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.text/windowed.html

Spec-Zone.ru

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