> Как сравнить два объекта дата класса по значению в 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() вручную.
> Похожие задачи по mobile
Как создать переменную в дата классе Kotlin, которая не участвует в hashCode и equals
Можно ли изменить переменную типа val в Kotlin
Почему нельзя работать с generic без inline в Kotlin
Как передаются параметры функции в Kotlin, по ссылке или по значению
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью