Ответ
Метод equals в Kotlin используется для сравнения объектов на содержательное равенство (по значению), в отличие от оператора ==, который по умолчанию вызывает equals. По умолчанию equals сравнивает ссылки (===), но его можно переопределить для сравнения по полям.
Пример:
data class Person(val name: String, val age: Int)
val person1 = Person("Alice", 25)
val person2 = Person("Alice", 25)
println(person1 == person2) // true (благодаря data class)
Без data class:
class Person(val name: String, val age: Int) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is Person) return false
return name == other.name && age == other.age
}
}
Важно: При переопределении equals всегда переопределяйте hashCode(), чтобы соблюдать контракт equals-hashCode.