windowed
- Kotlin kursu
- İleri seviye
- Ders 55/83
- 5 dk
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'de 1..5 listesini windowed(3) ile böl
// her pencerenin average'ını al ve yazdırÖrnek çözüm
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
val windows = listOf(1, 2, 3, 4).____(2)
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ç |