CodeBlanks Logo Icon CodeBlanks

Koleksiyonlar

List ve Map ile veri yönetimini yazarsın.

List işlemleri: filter

Kotlin listelerinde filter bir koşula uyan elemanları seçer. Görev takipte tamamlananları ya da bekleyenleri ayırmak için idealdir.

val tamamlananlar = tasks.filter { it.done }
val bekleyenler = tasks.filter { !it.done }

it listedeki her bir elemanı temsil eder. Koşul true döndüren elemanlar sonuçta kalır. Böylece tek satırda alt liste üretirsin.

forEach ve count

forEach listedeki her eleman için bir blok çalıştırır. count ise eleman sayısını verir. İkisi de liste üzerinde pratik araçlardır.

tasks.forEach { println(it) }
val n = tasks.count()

forEach bir döngü gibi davranır ama daha sade yazılır. count uzunluğu verir; ayrıca bir koşul da alabilir: tasks.count { it.done }. Böylece listeden hem geçer hem de özet çıkarırsın.

Uygulama Tamamlananları süz ve yazdır

TaskList sınıfına fun listDone() = tasks.filter { it.done } yöntemi ekle. main'de iki görev ekle, birinciyi list.tasks[0].done = true ile tamamla, sonra println ile list.listDone()'u yazdır.

Başlangıç kodu

Main.kt
class Task(val title: String) {
    var done: Boolean = false
    override fun toString(): String {
        return if (done) "[x] $title" else "[ ] $title"
    }
}

class TaskList {
    val tasks = mutableListOf<Task>()
    fun addTask(title: String) {
        tasks.add(Task(title))
    }
    // listDone metodunu buraya yaz
}

fun main() {
    val list = TaskList()
    // İki görev ekle; birini done yap; tamamlananları yazdır
}

Örnek çözüm

Main.kt
class Task(val title: String) {
    var done: Boolean = false
    override fun toString(): String {
        return if (done) "[x] $title" else "[ ] $title"
    }
}

class TaskList {
    val tasks = mutableListOf<Task>()
    fun addTask(title: String) {
        tasks.add(Task(title))
    }
    fun listDone() = tasks.filter { it.done }
}

fun main() {
    val list = TaskList()
    list.addTask("Kotlin çalış")
    list.addTask("Alışveriş")
    list.tasks[0].done = true
    println(list.listDone())
}

Beklenen çıktı

[[x] Kotlin çalış]

Soru ve cevaplar

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

1 filter ne yapar?

  • Bir koşula göre alt küme verir Doğru cevap
  • Tüm elemanları döndürür
  • Listeyi sıralar
  • İlk elemanı verir

Açıklama: filter koşula uyan elemanları seçer.

2 Boşluğu doldur: tamamlananları süz

Soru
val tamamlananlar = tasks.____ { it.done }
Cevap
val tamamlananlar = tasks.filter { it.done }

Açıklama: filter { it.done } tamamlanan görevleri verir.

3 İşlem ve kullanım eşleştir

Kavram Anlamı
filter Koşula göre süz
forEach Her biri için yap
count Say
find İlkini bul

Başlangıç bölümündeki tüm dersler