Data class nelle collezioni e come chiavi di map
Utilizzi le data class in set e map sfruttando l'uguaglianza strutturale.
Data class nelle collezioni e come chiavi di map è una lezione Kotlin Academy gratuita su CoddyKit. Questa è la lezione 4 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.
Le data class come oggetti valore
Classe normale: chiave di mappa errata
class Key(val id: Int) // no equals/hashCode
val map = mutableMapOf<Key, String>()
val k1 = Key(1)
val k2 = Key(1) // same id, different object
map[k1] = "value"
println(map[k2]) // null! k2 != k1 by referenceData class: chiave di mappa corretta
data class Key(val id: Int)
val map = mutableMapOf<Key, String>()
val k1 = Key(1)
val k2 = Key(1)
map[k1] = "value"
println(map[k2]) // "value"! Equal by valueData class in un Set
data class Tag(val name: String)
val tags = mutableSetOf<Tag>()
tags.add(Tag("kotlin"))
tags.add(Tag("kotlin")) // duplicate
tags.add(Tag("java"))
println(tags.size) // 2 (not 3)groupBy con le data class
data class Category(val name: String, val parent: String)
val items = listOf(
"List" to Category("Collections", "stdlib"),
"Map" to Category("Collections", "stdlib"),
"Flow" to Category("Coroutines", "kotlinx")
)
val grouped = items.groupBy { it.second }
println(grouped.keys.size) // 2Contare le occorrenze con Map
data class Pair2(val x: Int, val y: Int)
val points = listOf(Pair2(1,2), Pair2(1,2), Pair2(3,4))
val counts = points.groupingBy { it }.eachCount()
println(counts) // {Pair2(x=1, y=2)=2, Pair2(x=3, y=4)=1}Data class annidate
data class Address(val city: String, val country: String)
data class Person(val name: String, val address: Address)
val p1 = Person("Alice", Address("Berlin", "DE"))
val p2 = Person("Alice", Address("Berlin", "DE"))
println(p1 == p2) // truesortedBy con le data class
data class Student(val name: String, val grade: Double)
val students = listOf(
Student("Bob", 3.2),
Student("Alice", 3.8),
Student("Charlie", 2.9)
)
println(students.sortedBy { it.grade })Data class e caching
data class CacheKey(val userId: Long, val resourceType: String)
val cache = HashMap<CacheKey, ByteArray>()
val key = CacheKey(42, "avatar")
cache[key] = byteArrayOf(1, 2, 3)
println(cache[CacheKey(42, "avatar")] != null) // truedistinct sulle data class
data class Event(val type: String, val ts: Long)
val events = listOf(
Event("click", 1000),
Event("click", 1000), // duplicate
Event("scroll", 2000)
)
println(events.distinct().size) // 2Le chiavi immutabili sono più sicure
data class ImmutableKey(val id: Int) // val properties only
// DON'T: data class MutableKey(var id: Int) // changing id breaks map!Verifica rapida
Riepilogo
Domande Frequenti
La lezione «Data class nelle collezioni e come chiavi di map» è gratuita?
Sì — il testo completo di «Data class nelle collezioni e come chiavi di map» è 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 «Data class nelle collezioni e come chiavi di map»?
Utilizzi le data class in set e map sfruttando l'uguaglianza strutturale. 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 4 di 4.
Quanto tempo richiede la lezione «Data class nelle collezioni e come chiavi di map»?
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
- Basi delle data class: metodi generati automaticamente
- Copiare con copy() e override parziali
- Dichiarazioni destrutturate con componentN
- Data class nelle collezioni e come chiavi di map