Встречается на собеседованиях • сегодня

Какие знаешь правила переопределения метода hashCode

Переопределяя hashCode(), нужно соблюдать контракт с equals():

  1. Если equals() возвращает true, хэш-коды должны быть одинаковыми.
  2. Если equals() возвращает false, хэш-коды могут быть разными (но желательно разными для производительности).
  3. Хэш-код должен оставаться постоянным для неизменяемого объекта.

Пример:

java
@Override
public int hashCode() {
    int result = 17;
    result = 31 * result + field1.hashCode();
    result = 31 * result + (field2 != null ? field2.hashCode() : 0);
    return result;
}

Используются простые числа (17, 31) для лучшего распределения. Для примитивов можно использовать Integer.hashCode() или Double.hashCode(). Для null-полей обычно возвращают 0.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы