Menu
Coddy logo textTech

Ordenar por una clave

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 36 de 63.

sortedBy calcula una clave de comparación para cada elemento y devuelve una lista nueva ordenada por clave ascendente. sortedByDescending invierte el orden de las claves. Las claves iguales conservan su orden relativo original porque la ordenación de Kotlin es estable.

Dentro de main:

println(listOf("pear", "a", "kiwi", "to").sortedBy { it.length })

Las palabras se ordenan por longitud; pear permanece antes que kiwi porque sus longitudes empatan.

sortedBy conserva el orden original entre los elementos con claves iguales.

challenge icon

Desafío

Intermedio

Completa shortWordsFirst con parámetros words: List<String>. Devuelve las palabras en orden creciente de longitud. Conserva el orden original en caso de empate.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, tal como se describe.

Devuelve un valor de tipo List<String>. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con su cantidad de entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas usan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun shortWordsFirst(words: List<String>): List<String> {
    // Escribe tu solución aquí.
    return emptyList()
}
fun main() {
    val wordsCount = readln().toInt()
    val words = mutableListOf<String>()
    for (i0 in 0 until wordsCount) {
        val wordsItem = readLine().orEmpty()
        words.add(wordsItem)
    }
    println(shortWordsFirst(words))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin