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
- Listas y listas mutables
- Mapas y conjuntos
- map, filter, forEach
- Lambdas y funciones de orden superior