Для чего нужен метод equals в data class

«Для чего нужен метод equals в data class» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Метод equals в data class используется для сравнения объектов на содержательное равенство (по значениям полей), а не по ссылке. По умолчанию в data class он автоматически генерируется, сравнивая все свойства, объявленные в первичном конструкторе.

Пример:

data class User(val name: String, val age: Int)

val user1 = User("Alex", 25)
val user2 = User("Alex", 25)
println(user1 == user2) // true, т.к. equals сравнивает поля

Без data class пришлось бы переопределять equals вручную. Также equals влияет на поведение hashCode() и коллекций (например, HashSet или HashMap).