Menu
Coddy logo textTech

Ordinare in base a una chiave

Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 36 di 63.

sortedBy calcola una chiave di confronto per ogni elemento e restituisce una nuova lista in ordine crescente rispetto alla chiave. sortedByDescending inverte l’ordine delle chiavi. Le chiavi uguali mantengono il loro ordine relativo originale perché l’ordinamento di Kotlin è stabile.

Dentro di main:

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

Le parole sono ordinate per lunghezza; pear rimane prima di kiwi perché hanno la stessa lunghezza.

sortedBy mantiene l’ordine originale tra gli elementi con chiavi uguali.

challenge icon

Sfida

Medio

Completa shortWordsFirst con il parametro words: List<String>. Restituisci le parole in ordine di lunghezza crescente. In caso di parità, mantieni l'ordine originale.

A meno che sopra non siano specificati limiti più restrittivi, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può contenere rappresentazioni non valide o fuori intervallo, come descritto.

Restituisci un valore di tipo List<String>. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il numero dei suoi elementi, seguito dagli elementi, mentre una mappa inizia con il numero delle sue voci, seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato numero di elementi ed elementi per ogni riga. Il main fornito stampa il valore restituito seguito da una nuova riga. Le liste usano il formato standard di Kotlin tra parentesi quadre; non stampare etichette aggiuntive.

Provalo tu

fun shortWordsFirst(words: List<String>): List<String> {
    // Scrivi qui la tua soluzione.
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin