0Pricing
Kotlin Academy · Lección

Agrupación y partición

Organice los datos

Agrupación y partición es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 2 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.

Organización de datos

A veces necesita dividir una colección en categorías. Kotlin ofrece groupBy para agrupar elementos según una clave y partition para dividirlos en dos listas según una condición.

La función partition

partition divide una colección en un Pair de dos listas: los elementos que coinciden con el predicado y los que no.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6)
    val (even, odd) = numbers.partition { it % 2 == 0 }
    println("Even: $even")
    println("Odd: $odd")
}

Desestructuración de Pair

Como partition devuelve un Pair, puede desestructurarlo directamente en dos variables con nombre, como se muestra arriba. También puede acceder a .first y .second.

fun main() {
    val result = listOf(10, -5, 3, -8).partition { it >= 0 }
    println(result.first)
    println(result.second)
}

La función groupBy

groupBy crea un Map en el que cada clave la produce el selector y el valor es la lista de elementos que comparten esa clave.

fun main() {
    val words = listOf("apple", "banana", "avocado", "cherry")
    val byFirstLetter = words.groupBy { it.first() }
    println(byFirstLetter)
}

Agrupación por una clave calculada

La clave puede ser cualquier valor calculado, como la longitud de una cadena o un resto.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7)
    val byRemainder = numbers.groupBy { it % 3 }
    println(byRemainder)
}

groupBy con una transformación de valores

groupBy acepta una segunda lambda que transforma cada valor antes de colocarlo en el grupo.

fun main() {
    val words = listOf("red", "rose", "blue", "berry")
    val grouped = groupExample(words)
    println(grouped)
}

fun groupExample(words: List<String>) =
    words.groupBy({ it.first() }, { it.uppercase() })

Iteración sobre grupos

Como groupBy devuelve un Map, puede iterar sobre sus entradas para procesar cada grupo.

fun main() {
    val animals = listOf("cat", "cow", "dog", "duck")
    val groups = animals.groupBy { it.first() }
    for ((letter, list) in groups) {
        println("$letter -> $list")
    }
}

Conteo con groupingBy

Para contar elementos por clave, usar groupingBy seguido de eachCount es eficaz y permite escribir un código claro.

fun main() {
    val letters = listOf("a", "b", "a", "c", "b", "a")
    val counts = letters.groupingBy { it }.eachCount()
    println(counts)
}

partition frente a filter

Cuando solo necesita los elementos que coinciden, use filter. Cuando necesita TANTO los elementos que coinciden como los que no coinciden, partition lo hace en una sola pasada y devuelve ambas listas.

fun main() {
    val ages = listOf(15, 22, 17, 30, 12)
    val (adults, minors) = ages.partition { it >= 18 }
    println("Adults: $adults, Minors: $minors")
}

Elegir entre groupBy y partition

Use partition para obtener exactamente dos grupos definidos por una condición de sí o no. Use groupBy cuando pueda haber muchos grupos identificados por alguna propiedad.

Agrupación práctica

La agrupación y la partición sustituyen los bucles manuales y extensos por mapas y listas. Expresan claramente la intención y reducen los errores de gestión.

Comprobación rápida

¿Qué devuelve partition?

Repaso

Ha aprendido a usar partition para dividir una colección en dos listas según una condición y groupBy para agrupar elementos en un mapa según una clave, además de groupingBy().eachCount() para realizar conteos. A continuación, reducirá colecciones a valores únicos mediante agregación.

Preguntas frecuentes

¿La lección «Agrupación y partición» es gratis?

Sí — el texto completo de «Agrupación y partición» 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 «Agrupación y partición»?

Organice los datos 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 2 de 4.

¿Cuánto tiempo toma la lección «Agrupación y partición»?

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