Android Academy · Les

map, filter, forEach

Transformeer collecties met lambdas.

Les 3 van 413 stappen

map, filter, forEach is een gratis Android Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Android Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Android Academy bevat in totaal 4 lessen.

Bewerkingen op verzamelingen

Kotlin-verzamelingen bevatten krachtige ingebouwde bewerkingen. Drie die je voortdurend zult gebruiken zijn map, filter en forEach.

Daarmee kun je gegevens in één duidelijke regel omvormen, selecteren en doorlopen, in plaats van handmatige lussen te schrijven.

map vormt elk item om

map maakt een nieuwe lijst door op elk item een bewerking toe te passen.

Binnen de lambda verwijst it naar het huidige item. De oorspronkelijke lijst blijft ongewijzigd.

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

map kan typen wijzigen

Het resultaat van map hoeft niet hetzelfde type te hebben als de invoer.

Hier veranderen we een lijst met namen in een lijst met hun lengtes.

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

filter behoudt overeenkomsten

filter retourneert een nieuwe lijst met alleen de items waarvoor de lambda true retourneert.

Hier behouden we alleen de even getallen.

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

filter voor tekenreeksen

De voorwaarde kan alles zijn wat een Boolean retourneert. Hier behouden we alleen de lange woorden.

Items die niet aan de test voldoen, worden gewoon weggelaten uit het resultaat.

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

forEach voert een actie uit

forEach voert voor elk item een codeblok uit, maar maakt geen nieuwe lijst.

Gebruik het voor neveneffecten, zoals afdrukken of logboekregistratie.

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

map versus forEach

map retourneert een omgevormde lijst, dus gebruik het wanneer je een resultaat nodig hebt.

forEach retourneert niets bruikbaars, dus gebruik het alleen voor acties. Door de juiste te kiezen, blijft je code duidelijk.

Bewerkingen aan elkaar koppelen

Deze bewerkingen retourneren verzamelingen, dus je kunt ze aan elkaar koppelen.

Lees van links naar rechts: eerst filter, daarna map je de overgebleven items.

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

De parameter een naam geven

In plaats van it kun je de lambdaparameter een naam geven voor meer duidelijkheid, vooral wanneer je bewerkingen aan elkaar koppelt.

Gebruik een pijl: { name -> ... }.

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

forEachIndexed

Wanneer je ook de positie nodig hebt, gebruik je forEachIndexed. Dit geeft de index en het item door.

Zo hoef je niet handmatig een teller bij te houden.

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

Combineren voor echt werk

Samen drukken deze bewerkingen gegevenspijplijnen eenvoudig uit. Hier bepalen we de totale lengte van de lange namen.

Dit leest bijna als gewone taal.

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

Korte controle

Test je begrip van bewerkingen op verzamelingen.

Samenvatting

map vormt elk item om tot een nieuwe lijst, filter behoudt items die aan een voorwaarde voldoen en forEach voert per item een actie uit.

Ze retourneren verzamelingen, dus koppel ze aan elkaar om leesbare gegevenspijplijnen op te bouwen.

Gratis beginnen

Leer Kotlin met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
36
Lessen
152

Veelgestelde vragen

Is de les “map, filter, forEach” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Android Academy, waaronder “map, filter, forEach”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Android Academy bevat in totaal 4 lessen.

Wat leer ik in “map, filter, forEach”?

Transformeer collecties met lambdas. Je oefent met Android Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Android Academy te beginnen?

Ervaring vooraf is niet nodig. Android Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “map, filter, forEach”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Android Academy?

Ja. Elke les over Android Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Lijsten en mutable lijsten
  2. Maps en sets
  3. map, filter, forEach
  4. Lambdas en functies van hogere orde
← Terug naar Android Academy