0Pricing
Android Academy · Lección

map, filter, forEach

Transforme colecciones con lambdas

map, filter, forEach es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

Operaciones con colecciones

Las colecciones de Kotlin incluyen potentes operaciones integradas. Tres que usará constantemente son map, filter y forEach.

Le permiten transformar, seleccionar y recorrer datos en una sola línea clara, en lugar de escribir bucles manuales.

map transforma cada elemento

map crea una lista nueva aplicando una transformación a cada elemento.

Dentro de la lambda, it hace referencia al elemento actual. La lista original no cambia.

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

map puede cambiar los tipos

El resultado de map no tiene que ser del mismo tipo que la entrada.

Aquí convertimos una lista de nombres en una lista con sus longitudes.

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

filter conserva las coincidencias

filter devuelve una lista nueva que contiene únicamente los elementos para los que la lambda devuelve true.

Aquí conservamos solo los números pares.

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

filter con cadenas

La condición puede ser cualquier expresión que devuelva un Boolean. Aquí conservamos solo las palabras largas.

Los elementos que no superan la prueba simplemente se excluyen del resultado.

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

forEach ejecuta una acción

forEach ejecuta un bloque de código para cada elemento, pero no crea una lista nueva.

Úselo para efectos secundarios, como imprimir o registrar información.

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

map frente a forEach

map devuelve una lista transformada, así que úselo cuando necesite un resultado.

forEach no devuelve nada útil, así que úselo únicamente para ejecutar acciones. Elegir el adecuado mantiene el código claro.

Encadenar operaciones

Estas operaciones devuelven colecciones, por lo que puede encadenarlas.

Léalo de izquierda a derecha: primero filter y después map sobre los elementos restantes.

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

Dar nombre al parámetro

En lugar de it, puede dar nombre al parámetro de la lambda para mejorar la claridad, especialmente al encadenar operaciones.

Use una flecha: { name -> ... }.

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

forEachIndexed

Cuando también necesite la posición, use forEachIndexed. Esta función proporciona el índice y el elemento.

Así evita tener que llevar un contador manualmente.

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

Combinar operaciones para tareas reales

Juntas, estas operaciones permiten expresar canalizaciones de datos de forma sencilla. Aquí calculamos la longitud total de los nombres largos.

Esto se lee casi como lenguaje natural.

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

Comprobación rápida

Compruebe su comprensión de las operaciones con colecciones.

Recapitulación

map transforma cada elemento en una lista nueva, filter conserva los elementos que cumplen una condición y forEach ejecuta una acción para cada elemento.

Devuelven colecciones, así que puede encadenarlas para crear canalizaciones de datos legibles.

Preguntas frecuentes

¿La lección «map, filter, forEach» es gratis?

Sí — el texto completo de «map, filter, forEach» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «map, filter, forEach»?

Transforme colecciones con lambdas Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «map, filter, forEach»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Listas y listas mutables
  2. Mapas y conjuntos
  3. map, filter, forEach
  4. Lambdas y funciones de orden superior
← Volver a Android Academy