Встречается на собеседованиях • сегодня
Что нужно сделать для переопределения hashCode
Для переопределения hashCode() в Java нужно соблюдать контракт с equals():
- Если
equals()возвращаетtrue,hashCode()должен возвращать одинаковые значения. - Если
equals()возвращаетfalse,hashCode()может возвращать одинаковые или разные значения (но для производительности лучше разные). hashCode()должен возвращать одинаковое значение для одного и того же объекта при многократных вызовах.
Пример с классом Person:
java
@Override
public int hashCode() {
int result = 17;
result = 31 * result + name.hashCode();
result = 31 * result + age;
return result;
}Лучшие практики:
- Используйте те же поля, что и в
equals() - Выбирайте простые числа (например, 31) для умножения
- Для null-полей используйте 0 или другое константное значение
- Для массивов используйте
Arrays.hashCode()

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