0Pricing
Kotlin Academy · Lektion

filter, map und find für Collections

Wenden Sie Lambdas an, um Collections mithilfe von Standardbibliotheksfunktionen umzuwandeln und zu filtern.

filter, map und find für Collections ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Drei zentrale Funktionen

filter behält Elemente, die einem Prädikat entsprechen. map transformiert jedes Element. find gibt das erste passende Element (oder null) zurück. Zusammen decken sie den größten Teil der Verarbeitung von Collections ab.

Grundlagen von filter

filter gibt eine neue Liste zurück, die nur Elemente enthält, für die das Prädikat true ist.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5, 6)
    val evens = nums.filter { it % 2 == 0 }
    println(evens) // [2, 4, 6]
}

Grundlagen von map

map gibt eine neue Liste gleicher Größe zurück, in der jedes Element durch das Lambda transformiert wurde.

fun main() {
    val nums = listOf(1, 2, 3)
    val squares = nums.map { it * it }
    println(squares) // [1, 4, 9]
}

Grundlagen von find

find gibt das erste Element zurück, das dem Prädikat entspricht, oder null, wenn kein Element passt.

fun main() {
    val words = listOf("apple", "banana", "cherry")
    val match = words.find { it.startsWith("b") }
    println(match) // banana
}

filter und map verketten

Verbinden Sie beide mit der Punktnotation zu ausdrucksstarken Pipelines.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5)
    val result = nums.filter { it % 2 == 1 }.map { it * 10 }
    println(result) // [10, 30, 50]
}

Data Classes filtern

Bei Collections mit Instanzen von Data Classes kommen filter und map besonders gut zur Geltung.

data class User(val name: String, val age: Int)
fun main() {
    val users = listOf(User("Ana", 17), User("Ben", 25), User("Cal", 31))
    val adultNames = users.filter { it.age >= 18 }.map { it.name }
    println(adultNames) // [Ben, Cal]
}

find und first im Vergleich

find gibt einen Nullable-Wert zurück; first { ... } löst eine Ausnahme aus, wenn kein Treffer vorliegt. Verwenden Sie find für optionale Treffer.

fun main() {
    val nums = listOf(1, 2, 3)
    println(nums.find { it > 10 })  // null
    // nums.first { it > 10 }       // throws NoSuchElementException
    println(nums.firstOrNull { it > 10 }) // null (alias of find)
}

filterNot und filterNotNull

filterNot kehrt das Prädikat um. filterNotNull entfernt null-Einträge aus einer Liste mit Nullable-Werten.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    println(nums.filterNot { it % 2 == 0 }) // [1, 3]
    val maybe: List<String?> = listOf("a", null, "b", null, "c")
    println(maybe.filterNotNull()) // [a, b, c]
}

mapNotNull

mapNotNull transformiert Werte und entfernt anschließend null-Werte – praktisch beim Parsen.

fun main() {
    val raw = listOf("1", "two", "3", "four")
    val numbers = raw.mapNotNull { it.toIntOrNull() }
    println(numbers) // [1, 3]
}

Pipeline aus der Praxis

Ein kleines Beispiel, das filter, map und eine abschließende Reduktion kombiniert.

data class Product(val name: String, val price: Double, val inStock: Boolean)
fun main() {
    val products = listOf(
        Product("Pen", 1.0, true),
        Product("Book", 12.0, false),
        Product("Lamp", 25.0, true)
    )
    val total = products
        .filter { it.inStock }
        .map { it.price }
        .sum()
    println("Available total: $total") // 26.0
}

Zwischen Operationen wählen

Verwenden Sie filter, wenn Sie eine Teilmenge benötigen, map zum Transformieren, find für einen einzelnen optionalen Treffer, und verketten Sie die Operationen bei Bedarf.

fun main() {
    val words = listOf("alpha", "beta", "gamma", "delta")
    println(words.filter { it.length == 5 })       // [alpha, gamma, delta]
    println(words.map { it.uppercase() })           // [ALPHA, BETA, GAMMA, DELTA]
    println(words.find { it.endsWith("ta") })       // beta
}

Schnelltest

Welche Funktion gibt eine neue Collection zurück, deren Elemente durch ein Lambda transformiert wurden?

Zusammenfassung

filter wählt aus, map transformiert, find findet den ersten Treffer (oder null). Kombinieren Sie sie beliebig in Pipelines; verwenden Sie mapNotNull und filterNotNull, wenn Sie mit optionalen Werten arbeiten.

Häufig gestellte Fragen

Ist die Lektion „filter, map und find für Collections“ kostenlos?

Ja — der vollständige Text von „filter, map und find für Collections“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „filter, map und find für Collections“?

Wenden Sie Lambdas an, um Collections mithilfe von Standardbibliotheksfunktionen umzuwandeln und zu filtern. Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „filter, map und find für Collections“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Was ist ein Lambda? Syntax und Typen
  2. Lambdas an Funktionen übergeben
  3. it: Der implizite Parameter
  4. filter, map und find für Collections
← Zurück zu Kotlin Academy