Ответ
Метод hashCode() используется для генерации числового хеш-кода объекта, который необходим для корректной работы коллекций, основанных на хеш-таблицах (HashSet, HashMap и т.д.).
Основные правила:
- Если два объекта равны (
equals()возвращаетtrue), ихhashCode()должен быть одинаковым. - Обратное не обязательно: разные объекты могут иметь одинаковый
hashCode()(коллизии).
data class Person(val name: String, val age: Int)
val person1 = Person("Alice", 25)
val person2 = Person("Alice", 25)
println(person1.hashCode() == person2.hashCode()) // true, т.к. equals true
Для data class Kotlin автоматически генерирует hashCode() на основе свойств. В обычных классах нужно переопределять hashCode() вручную, если переопределён equals().