> Как сравнить два объекта дата класса по значению в Kotlin (Kotlin, Android)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Idea Platform

Стек: Kotlin, Android

> Пример ответа

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

Пример:

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

fun main() {
    val user1 = User("Анна", 25)
    val user2 = User("Анна", 25)
    val user3 = User("Иван", 30)

    println(user1 == user2) // true - значения совпадают
    println(user1 == user3) // false - значения различаются
}

Важно: data class автоматически генерирует equals(), hashCode(), toString() и copy(). Если нужно сравнить только часть свойств, используйте деструктуризацию или явное сравнение полей.

Если же вы используете обычный class (не data), оператор == сравнивает ссылки (как === в Java). Для сравнения по значению в таком случае нужно переопределить equals() вручную.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью