Встречается на собеседованиях • сегодня
Что такое контракт hashCode
Контракт hashCode() в Java определяет три обязательных правила:
- Консистентность: Если объект не изменялся,
hashCode()должен возвращать одно и то же значение при каждом вызове (в рамках одного выполнения программы). - Равенство объектов: Если два объекта равны по
equals(), ихhashCode()должен быть одинаковым. - Обратное не обязательно: Разные
hashCode()у объектов не гарантируют, что они не равны поequals(), но это улучшает производительность хэш-структур (например,HashMap).
Пример нарушения контракта:
java
class BadHash {
int id;
@Override
public boolean equals(Object o) { /* сравнение по id */ }
// Нет переопределения hashCode()
}Такой класс вызовет проблемы в HashSet или HashMap, так как равные объекты могут попасть в разные корзины.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы