0Pricing
Android Academy · Lektion

map, filter, forEach

Transformieren Sie Collections mit Lambdas.

map, filter, forEach ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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 Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Collection-Operationen

Kotlin-Collections bieten leistungsstarke integrierte Operationen. Drei davon werden Sie ständig verwenden: map, filter und forEach.

Damit können Sie Daten in einer klaren Zeile umwandeln, auswählen und durchlaufen, statt manuelle Schleifen zu schreiben.

map wandelt jedes Element um

map erstellt eine neue Liste, indem jedes Element umgewandelt wird.

Innerhalb der Lambda-Funktion verweist it auf das aktuelle Element. Die ursprüngliche Liste bleibt unverändert.

fun main() {
    val nums = listOf(1, 2, 3)
    val doubled = nums.map { it * 2 }
    println(doubled)
}

map kann Typen ändern

Das Ergebnis von map muss nicht denselben Typ wie die Eingabe haben.

Hier wandeln wir eine Liste von Namen in eine Liste ihrer Längen um.

fun main() {
    val names = listOf("Ada", "Linus")
    val lengths = names.map { it.length }
    println(lengths)
}

filter behält passende Elemente

filter gibt eine neue Liste zurück, die nur die Elemente enthält, für die die Lambda-Funktion true zurückgibt.

Hier behalten wir nur die geraden Zahlen.

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

filter bei Strings

Die Bedingung kann alles sein, was einen Boolean zurückgibt. Hier behalten wir nur die langen Wörter.

Elemente, die den Test nicht bestehen, werden einfach aus dem Ergebnis weggelassen.

fun main() {
    val words = listOf("hi", "hello", "hey", "howdy")
    val long = words.filter { it.length > 3 }
    println(long)
}

forEach führt eine Aktion aus

forEach führt für jedes Element einen Codeblock aus, erstellt aber keine neue Liste.

Verwenden Sie es für Seiteneffekte wie die Ausgabe oder Protokollierung.

fun main() {
    val fruits = listOf("apple", "banana")
    fruits.forEach { println("Fruit: $it") }
}

map vs. forEach

map gibt eine umgewandelte Liste zurück. Verwenden Sie es daher, wenn Sie ein Ergebnis benötigen.

forEach gibt nichts Verwertbares zurück. Verwenden Sie es daher nur für Aktionen. Die richtige Wahl sorgt für klaren Code.

Operationen verketten

Diese Operationen geben Collections zurück, sodass Sie sie miteinander verketten können.

Lesen Sie den Ausdruck von links nach rechts: Zuerst filter, dann map auf die verbleibenden Elemente anwenden.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5, 6)
    val result = nums.filter { it % 2 == 0 }.map { it * 10 }
    println(result)
}

Den Parameter benennen

Statt it können Sie den Lambda-Parameter zur besseren Verständlichkeit benennen, besonders beim Verketten von Operationen.

Verwenden Sie einen Pfeil: { name -> ... }.

fun main() {
    val prices = listOf(10, 25, 5)
    val withTax = prices.map { price -> price + price / 10 }
    println(withTax)
}

forEachIndexed

Wenn Sie zusätzlich die Position benötigen, verwenden Sie forEachIndexed. Dabei werden der Index und das Element übergeben.

So müssen Sie keinen Zähler manuell verwalten.

fun main() {
    val tasks = listOf("eat", "code", "rest")
    tasks.forEachIndexed { i, task ->
        println("$i: $task")
    }
}

Kombinationen für die Praxis

Zusammen ermöglichen diese Operationen, Datenpipelines einfach auszudrücken. Hier ermitteln wir die Gesamtlänge der langen Namen.

Das liest sich fast wie normale Sprache.

fun main() {
    val names = listOf("Ada", "Grace", "Bo")
    val total = names.filter { it.length > 2 }.map { it.length }.sum()
    println(total)
}

Schnelltest

Testen Sie Ihr Verständnis von Collection-Operationen.

Zusammenfassung

map wandelt jedes Element in einer neuen Liste um, filter behält Elemente, die einer Bedingung entsprechen, und forEach führt pro Element eine Aktion aus.

Sie geben Collections zurück, sodass Sie sie zu übersichtlichen Datenpipelines verketten können.

Häufig gestellte Fragen

Ist die Lektion „map, filter, forEach“ kostenlos?

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

Was lerne ich in „map, filter, forEach“?

Transformieren Sie Collections mit Lambdas. Du übst Android 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 Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android 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 3 von 4.

Wie lange dauert die Lektion „map, filter, forEach“?

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 Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android 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. Listen und veränderliche Listen
  2. Maps und Sets
  3. map, filter, forEach
  4. Lambdas und Higher-Order-Funktionen
← Zurück zu Android Academy