Почему мы всегда должны переопределять метод hashCode()
всякий раз, когда мы переопределяем метод equals()
? По моему пониманию они оба, похоже, выполняют разные цели. Метод hashCode()
используется в hashtables для определения равенства ключей. Однако метод equals()
используется для определения равенства двух объектов.Почему мы должны переопределять hashcode() при переопределении метода equals()?
-1
A
ответ
1
Если два объекта равны в соответствии с методом equals
, их хэш-коды также должны быть равны. В противном случае поиск в хэш-таблице завершится неудачно.
Смежные вопросы
- 1. Нужно ли переопределять == и! = Операторы при переопределении метода Equals? (.NET)
- 2. Динамически переопределять `equals` и` hashCode` в groovy
- 3. Почему мы должны переопределять equals и hashcode в java и почему мы не можем использовать реализацию класса Object
- 4. Почему я должен переопределять hashCode(), когда я переопределяю метод equals()?
- 5. Почему UserRole реализует метод Serializable и переопределять equals() и hashcode()
- 6. Проблема в переопределении метода equals (...) в Java
- 7. Должны ли мы всегда переопределять равные?
- 8. Что означает это утверждение о переопределении hashcode и equals?
- 9. Нужно ли переопределять метод hashcode?
- 10. Зачем переопределять методы hashCode и equals в классе сохранения hibernate?
- 11. Почему выход изменяется, если мы изменим возвращаемое значение метода equals?
- 12. Невозможно получить правильные значения из hashmap при переопределении метода Hashcode
- 13. данных, которые необходимо учитывать при переопределении hashcode и равно
- 14. В Java, почему equals() и hashCode() должны быть последовательными?
- 15. Зачем нужно переопределять hashcode и equals метод ключа для Hashmap?
- 16. Hashcode и equals methods contract
- 17. Почему существуют как hashCode(), так и equals()
- 18. Переопределение метода hashcode и equals в java?
- 19. Как указать оба объекта при переопределении метода equals?
- 20. Карта HashCode и Equals
- 21. Зачем переопределять метод hashCode?
- 22. Метод HashCode и Equals в объекте Java
- 23. equals() без hashCode()
- 24. Следует ли переопределить метод 'equals' (Object) при переопределении hashCode() в Java?
- 25. hashcode генерируется при вызове метода hashcode()
- 26. Почему мы должны переопределить метод equals() в Java?
- 27. Вызов hashCode() from equals()
- 28. Почему я должен переопределять метод equals и hashcode для следующего scnetio
- 29. Почему в Hibernate-объектах вне сеанса есть equals() и hashcode()?
- 30. SCJP HashCode() и Equals() Путаница
Оба ваших утверждения несколько ошибочны. Этот вопрос задавали сотни раз раньше; вы получите больше информации с помощью Google. –
Просто потому, что 2 значения хэша одинакового значения не означают, что они равны, вам нужно также проверить, равны ли они. – Dukeling
Вам не нужно переопределять оба варианта, но на самом деле это очень легко сделать, поскольку современные IDE поддерживают создание кода для обоих из них. –