0Pricing
Kotlin Academy · Lesson

Data Classes in Collections and as Map Keys

Use data classes in sets and maps leveraging structural equality.

Data Classes as Value Objects

Because data classes override equals and hashCode structurally, they work perfectly in sets and as map keys — unlike regular classes.

Regular Class: Bad Map Key

A regular class uses reference equality by default. Two equal-looking objects are different map keys.
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 reference

All lessons in this course

  1. Data Class Basics: Auto-generated Methods
  2. Copying with copy() and Partial Overrides
  3. Destructuring Declarations with componentN
  4. Data Classes in Collections and as Map Keys
← Back to Kotlin Academy