0Pricing
Kotlin Academy · Lezione

Filtraggio e mapping

Trasformi le collezioni

Filtraggio e mapping è una lezione Kotlin Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kotlin Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kotlin Academy include 4 lezioni in totale.

Trasformare le collection

Le collection Kotlin offrono un ricco insieme di operazioni funzionali. Due tra le più comuni sono filter (seleziona gli elementi) e map (trasforma gli elementi). Restituiscono nuove collection e non modificano mai quella originale.

La funzione filter

filter conserva solo gli elementi che soddisfano un predicato e restituisce una nuova lista.

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

filterNot e filterNotNull

filterNot conserva gli elementi che NON corrispondono. filterNotNull rimuove gli elementi null e restituisce una lista non null.

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 rende disponibili sia l'indice sia il valore nel predicato.

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

La funzione map

map applica una trasformazione a ogni elemento e restituisce una nuova lista contenente i risultati. Il tipo del risultato può essere diverso da quello dell'input.

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

Mappare a un altro tipo

map può modificare il tipo degli elementi, ad esempio trasformando numeri in stringhe.

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

mapIndexed

mapIndexed fornisce l'indice insieme a ogni elemento, così può utilizzare la posizione nella trasformazione.

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

mapNotNull

mapNotNull trasforma ogni elemento ed elimina i risultati null. È un modo pulito per combinare mappatura e filtraggio.

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

Concatenare filter e map

Queste operazioni si combinano naturalmente. Un modello comune consiste nel filtrare prima e poi mappare gli elementi rimasti.

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

Le operazioni non sono distruttive

Sia filter sia map restituiscono liste completamente nuove. La collection originale rimane invariata, rendendo il codice più sicuro e facile da comprendere.

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

Filtrare e mappare nella pratica

Insieme, filter e map consentono di esprimere in modo dichiarativo le pipeline di dati: descrivere CHE COSA si desidera, non COME eseguire il ciclo. È più chiaro dei cicli for manuali con il tracciamento degli indici.

Verifica rapida

Qual è la differenza tra filter e map?

Riepilogo

Ha imparato a selezionare gli elementi con filter e le sue varianti filterNot, filterIndexed, filterNotNull, e a trasformarli con map e mapIndexed, mapNotNull. Queste operazioni si concatenano in modo naturale e non modificano mai la sorgente. Nel prossimo passaggio organizzerà i dati con il raggruppamento e la suddivisione.

Domande Frequenti

La lezione «Filtraggio e mapping» è gratuita?

Sì — il testo completo di «Filtraggio e mapping» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kotlin Academy, passa a CoddyKit PRO. Il corso Kotlin Academy include 4 lezioni in totale.

Cosa imparerò in «Filtraggio e mapping»?

Trasformi le collezioni Eserciti Kotlin Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Kotlin Academy?

Non è richiesta alcuna esperienza precedente. Kotlin Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Filtraggio e mapping»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Kotlin Academy?

Sì. Ogni lezione Kotlin Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Filtraggio e mapping
  2. Raggruppamento e partizionamento
  3. Aggregazione
  4. Associazione e flattening
← Torna a Kotlin Academy