0Pricing
Kotlin Academy · Lección

Filtrado y mapeo

Transforme colecciones

Filtrado y mapeo es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 1 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 Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.

Transformar colecciones

Las colecciones de Kotlin incluyen un amplio conjunto de operaciones funcionales. Dos de las más comunes son filter (seleccionar elementos) y map (transformar elementos). Devuelven colecciones nuevas y nunca modifican la original.

La función filter

filter conserva solo los elementos que cumplen un predicado y devuelve una lista nueva.

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

filterNot y filterNotNull

filterNot conserva los elementos que NO coinciden. filterNotNull elimina los elementos null y devuelve una lista no anulable.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    println(nums.filterNot { it > 2 })
    val withNulls = listOf(1, null, 3, null)
    println(withNulls.filterNotNull())
}

filterIndexed

filterIndexed le proporciona tanto el índice como el valor en el predicado.

fun main() {
    val letters = listOf("a", "b", "c", "d")
    val result = letters.filterIndexed { index, _ -> index % 2 == 0 }
    println(result)
}

La función map

map aplica una transformación a cada elemento y devuelve una lista nueva con los resultados. El tipo del resultado puede ser diferente del tipo de entrada.

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

Convertir elementos a otro tipo

map puede cambiar el tipo de los elementos, por ejemplo, convertir números en cadenas.

fun main() {
    val numbers = listOf(1, 2, 3)
    val labels = numbers.map { "Item $it" }
    println(labels)
}

mapIndexed

mapIndexed proporciona el índice junto con cada elemento para que pueda usar la posición en la transformación.

fun main() {
    val fruits = listOf("apple", "banana", "cherry")
    val numbered = fruits.mapIndexed { i, fruit -> "${i + 1}. $fruit" }
    numbered.forEach { println(it) }
}

mapNotNull

mapNotNull transforma cada elemento y descarta los resultados que sean null. Es una forma clara de combinar la transformación y el filtrado.

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

Encadenar filter y map

Estas operaciones se combinan de forma natural. Un patrón habitual consiste en filtrar primero y aplicar después map a los elementos que quedan.

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

Las operaciones no son destructivas

Tanto filter como map devuelven listas completamente nuevas. La colección original no cambia, lo que hace que el código sea más seguro y fácil de comprender.

fun main() {
    val original = listOf(1, 2, 3)
    val doubled = original.map { it * 2 }
    println("Original: $original")
    println("Doubled: $doubled")
}

Filtrar y transformar en la práctica

Juntas, filter y map permiten expresar canalizaciones de datos de forma declarativa: describa QUÉ quiere, no CÓMO recorrer los datos. Esto resulta más claro que los bucles for manuales con seguimiento del índice.

Comprobación rápida

¿Cuál es la diferencia entre filter y map?

Repaso

Ha aprendido a seleccionar elementos con filter (y sus variantes filterNot, filterIndexed y filterNotNull) y a transformarlos con map (y mapIndexed y mapNotNull). Estas funciones se pueden encadenar fácilmente y nunca modifican la fuente. A continuación, organizará los datos mediante agrupación y partición.

Preguntas frecuentes

¿La lección «Filtrado y mapeo» es gratis?

Sí — el texto completo de «Filtrado y mapeo» 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 Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Filtrado y mapeo»?

Transforme colecciones Practicas Kotlin 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 Kotlin Academy?

No se requiere experiencia previa. Kotlin 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 1 de 4.

¿Cuánto tiempo toma la lección «Filtrado y mapeo»?

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 Kotlin Academy?

Sí. Cada lección de Kotlin 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. Filtrado y mapeo
  2. Agrupación y partición
  3. Agregación
  4. Asociación y aplanamiento
← Volver a Kotlin Academy