CodeBlanks Logo Icon CodeBlanks

windowed

windowed ile pencereleme öğrenirsin.

windowed

windowed, bir koleksiyonu kayan pencereye (sliding window) böler. Her pencere belirli bir boyutta olur; isteğe bağlı step ile kaydırma aralığı verilir.

Örnek: listOf(1, 2, 3, 4).windowed(2) ifadesi [[1, 2], [2, 3], [3, 4]] döndürür. windowed(2, step = 2) ise [[1, 2], [3, 4]] verir; pencereler üst üste binmez. Bu kalıp, hareketli ortalama ve zaman serisi analizinde kullanışlıdır.

step ve partialWindows

step parametresi pencere kaydırma aralığını belirler. partialWindows = true ise sondaki eksik pencere de dahil edilir.

Örnek: listOf(1, 2, 3, 4, 5).windowed(3, step = 2) ifadesi [[1, 2, 3], [3, 4, 5]] döndürür. partialWindows = true ile listOf(1, 2, 3, 4, 5).windowed(3, step = 2, partialWindows = true) ifadesi sonuna [5] ekler. Bu parametreler pencere davranışını ince ayar yapmanı sağlar.

Uygulama Hareketli ortalama hesapla

main içinde listOf(1, 2, 3, 4, 5).windowed(3) { it.average() } sonucunu bir değişkene ata ve println ile yazdır.

Başlangıç kodu

Main.kt
// main'de 1..5 listesini windowed(3) ile böl
// her pencerenin average'ını al ve yazdır

Örnek çözüm

Main.kt
fun main() {
    val avg = listOf(1, 2, 3, 4, 5).windowed(3) { it.average() }
    println(avg)
}

Beklenen çıktı

[2.0, 3.0, 4.0]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 listOf(1, 2, 3, 4).windowed(2) çağrısı ne döndürür?

  • [[1, 2], [3, 4]]
  • [[1, 2], [2, 3], [3, 4]] Doğru cevap
  • [[1, 2, 3, 4]]
  • [1, 2, 3, 4]

Açıklama: windowed(2) varsayılan step 1 ile kayan pencere verir.

2 windowed çağrısını tamamla

Soru
val windows = listOf(1, 2, 3, 4).____(2)
Cevap
val windows = listOf(1, 2, 3, 4).windowed(2)

Açıklama: windowed(2) iki elemanlı kayan pencereler üretir.

3 windowed parçalarını eşle

Kavram Anlamı
windowed(2) Pencere boyutu
step = 2 Kaydırma aralığı
partialWindows = true Eksik pencere
[[1, 2], [2, 3]] Sonuç

İleri seviye bölümündeki tüm dersler