typestar

Agrupar y ordenar en Kotlin

Ordena una lista por cualquier clave, o cubetéala por una.

fun main() {
    val summits = listOf(
        "Tolmie" to 1408, "Brier" to 980, "Sawback" to 2214,
        "Quartz" to 2590, "Meadow" to 760,
    )
    // sortedByDescending orders; groupBy buckets by a computed key.
    val ranked = summits.sortedByDescending { it.second }
    println("Highest: ${ranked.first().first}")

    val byBand = summits.groupBy { (_, m) -> m / 1000 }
    println("Under 1000 m: ${byBand[0]?.map { it.first }}")
    println("Above 2000 m: ${byBand[2]?.size}")
}

Cómo funciona

  1. sortedByDescending { it.second } clasifica las cumbres por altura.
  2. groupBy arma un map de clave calculada a las entradas que la comparten.
  3. byBand[0]?.map { ... } lee con seguridad una cubeta que puede no existir.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
442
Tokens
136
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 126 segundos.

Escribe este fragmento

Paso 3 de 3 en Colecciones; paso 12 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →