Встречается на собеседованиях • сегодня
Что такое правило hashCode
Правило hashCode гласит, что если два объекта равны по equals(), их хэш-коды должны быть одинаковыми. Обратное необязательно: разные объекты могут иметь одинаковый хэш-код (коллизия). Это правило критично для корректной работы hash-коллекций (HashMap, HashSet).
Пример нарушения:
java
class Person {
String name;
// equals сравнивает только name
@Override public int hashCode() { return name.length(); } // плохо: зависит только от длины
}Если equals учитывает только name, но hashCode зависит от длины имени, два объекта с разными именами одинаковой длины будут иметь одинаковый хэш-код, что допустимо, но два равных объекта с разной длиной имени (невозможно по equals) — нарушение.
Идеальный hashCode должен:
- Быть консистентным (одинаковым при многократных вызовах)
- Минимизировать коллизии
- Быстро вычисляться
Пример правильной реализации:
java
@Override
public int hashCode() {
return Objects.hash(name, age); // учитывает все поля из equals
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы