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

Какие знаешь методы реализации hashCode

В Java hashCode() должен возвращать целочисленное значение, основанное на внутреннем состоянии объекта. Основные подходы:

  1. Использование Objects.hash() (Java 7+):
java
@Override
public int hashCode() {
    return Objects.hash(field1, field2, field3);
}
  1. Классический подход (Effective Java):
java
@Override
public int hashCode() {
    int result = 17;
    result = 31 * result + field1.hashCode();
    result = 31 * result + field2.hashCode();
    return result;
}
  1. Генерация IDE (IntelliJ/Eclipse обычно используют 31-множитель)

Ключевые требования:

  • Одинаковые объекты → одинаковый hashCode
  • Разные объекты могут иметь одинаковый hashCode (коллизии)
  • Желательно минимизировать коллизии
  • При изменении состояния, изменяется hashCode (для immutable объектов это неактуально)

Для примитивов можно использовать Double.hashCode(), Integer.hashCode() и т.д.

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

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

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

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