0Pricing
Android Academy · Lezione

Collection di Kotlin

Lavorare con List, Set e Map. Usare operatori funzionali come filter, map, sortedBy, forEach, find, any e all e concatenare le operazioni per trasformare i dati in modo conciso.

Collection di Kotlin è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 1 di 6. 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 Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 6 lezioni in totale.

Panoramica delle raccolte

La libreria standard di Kotlin fornisce tre tipi principali di raccolte:

  • List — sequenza ordinata di elementi (può contenere duplicati)
  • Set — elementi univoci, senza un ordine specifico
  • Map — coppie chiave-valore, con chiavi univoche

Ogni tipo dispone di una versione immutabile (sola lettura) e di una versione mutabile (modificabile).

Liste: listOf e mutableListOf

Crei le liste usando funzioni factory:

fun main() {
    // Immutable — cannot add/remove items
    val fruits = listOf("Apple", "Banana", "Cherry")
    println(fruits[0])       // Apple
    println(fruits.size)     // 3

    // Mutable — can modify
    val scores = mutableListOf(10, 20, 30)
    scores.add(40)
    scores.removeAt(0)       // remove index 0
    println(scores)          // [20, 30, 40]
}

Map: coppie chiave-valore

Utilizzi mapOf e mutableMapOf per creare le mappe. Acceda ai valori tramite la chiave:

fun main() {
    val capitals = mapOf(
        "Turkey" to "Ankara",
        "Germany" to "Berlin",
        "Japan" to "Tokyo"
    )

    println(capitals["Turkey"])      // Ankara
    println(capitals["France"])      // null (not found)
    println(capitals.getOrDefault("France", "Unknown")) // Unknown

    // Iterate
    for ((country, city) in capitals) {
        println("$country -> $city")
    }
}

filter — selezionare elementi

filter restituisce una nuova lista contenente solo gli elementi che soddisfano una condizione:

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8)

    val evens = numbers.filter { it % 2 == 0 }
    println(evens)   // [2, 4, 6, 8]

    val names = listOf("Alice", "Bob", "Anna", "Charlie")
    val aNames = names.filter { it.startsWith("A") }
    println(aNames)  // [Alice, Anna]
}

map — trasformare elementi

map trasforma ogni elemento e restituisce una nuova lista:

fun main() {
    val prices = listOf(10.0, 20.0, 30.0)

    // Apply 10% tax
    val withTax = prices.map { it * 1.1 }
    println(withTax)  // [11.0, 22.0, 33.0]

    val names = listOf("alice", "bob", "carol")
    val upper = names.map { it.uppercase() }
    println(upper)    // [ALICE, BOB, CAROL]
}

sortedBy e sortedByDescending

Ordini una lista in base a una proprietà:

data class Student(val name: String, val grade: Int)

fun main() {
    val students = listOf(
        Student("Alice", 88),
        Student("Bob", 95),
        Student("Carol", 72)
    )

    val byGrade = students.sortedByDescending { it.grade }
    for (s in byGrade) println("${s.name}: ${s.grade}")
    // Bob: 95
    // Alice: 88
    // Carol: 72
}

forEach e find

Altre due funzioni utili per le raccolte:

  • forEach — esegue un'iterazione senza creare un risultato
  • find — restituisce il primo elemento che soddisfa una condizione, oppure null

concatenamento delle operazioni

Concateni più operazioni per trasformare i dati in modo conciso:

data class Product(val name: String, val price: Double, val inStock: Boolean)

fun main() {
    val products = listOf(
        Product("Laptop", 999.0, true),
        Product("Mouse", 29.0, false),
        Product("Keyboard", 79.0, true),
        Product("Monitor", 349.0, true)
    )

    // In-stock products under $500, sorted by price
    val result = products
        .filter { it.inStock && it.price < 500 }
        .sortedBy { it.price }
        .map { "${it.name}: ${it.price}" }

    result.forEach { println(it) }
}

any, all, count

Funzioni aggregate per ottenere rapidamente delle risposte:

  • any { condition } — true se almeno un elemento corrisponde
  • all { condition } — true se tutti gli elementi corrispondono
  • count { condition } — numero di elementi corrispondenti
  • sumOf { it.price } — somma di una proprietà numerica

Verifica rapida

Quale funzione utilizzerebbe per ottenere solo gli elementi di una lista che soddisfano una condizione?

Riepilogo: raccolte Kotlin

Ora può lavorare in modo efficiente con i dati in Kotlin:

  • listOf / mutableListOf, mapOf / mutableMapOf
  • filter — selezionare gli elementi corrispondenti
  • map — trasformare gli elementi
  • sortedBy / sortedByDescending
  • Concatenare le operazioni per creare pipeline di dati chiare e leggibili

Prossimo argomento: visualizzare le liste sullo schermo con RecyclerView.

Domande Frequenti

La lezione «Collection di Kotlin» è gratuita?

Sì — il testo completo di «Collection di Kotlin» è 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 Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 6 lezioni in totale.

Cosa imparerò in «Collection di Kotlin»?

Lavorare con List, Set e Map. Usare operatori funzionali come filter, map, sortedBy, forEach, find, any e all e concatenare le operazioni per trasformare i dati in modo conciso. Eserciti Android 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 Android Academy?

Non è richiesta alcuna esperienza precedente. Android 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 6.

Quanto tempo richiede la lezione «Collection di Kotlin»?

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 Android Academy?

Sì. Ogni lezione Android 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. Collection di Kotlin
  2. Nozioni di base su RecyclerView
  3. Eventi di clic di RecyclerView
  4. SharedPreferences
  5. DataStore Preferences
  6. Adapter e DiffUtil
← Torna a Android Academy