Data classes em coleções e como chaves de mapas
Use data classes em conjuntos e mapas aproveitando a igualdade estrutural.
Data classes em coleções e como chaves de mapas é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.
Classes de dados como objetos de valor
Classe comum: chave de mapa inválida
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 referenceClasse de dados: chave de mapa correta
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 valueClasse de dados em um conjunto
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 com classes de dados
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) // 2Contando ocorrências com 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}Classes de dados aninhadas
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 com classes de dados
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 })Classes de dados e armazenamento em cache
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 em classes de dados
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) // 2Chaves imutáveis são mais seguras
data class ImmutableKey(val id: Int) // val properties only
// DON'T: data class MutableKey(var id: Int) // changing id breaks map!Verificação rápida
Recapitulação
Perguntas Frequentes
A aula “Data classes em coleções e como chaves de mapas” é grátis?
Sim — o texto completo de “Data classes em coleções e como chaves de mapas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.
O que vou aprender em “Data classes em coleções e como chaves de mapas”?
Use data classes em conjuntos e mapas aproveitando a igualdade estrutural. Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kotlin Academy?
Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Data classes em coleções e como chaves de mapas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kotlin Academy?
Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Noções básicas de data class: métodos gerados automaticamente
- Copiando com copy() e substituições parciais
- Declarações de desestruturação com componentN
- Data classes em coleções e como chaves de mapas