Встречается на собеседованиях • сегодня
Какие знаешь способы переопределения hashCode
В Java hashCode() можно переопределить несколькими способами:
- Ручной расчет на основе полей класса:
java
@Override
public int hashCode() {
int result = 17;
result = 31 * result + field1.hashCode();
result = 31 * result + (field2 != null ? field2.hashCode() : 0);
return result;
}- Использование Objects.hash() (Java 7+):
java
@Override
public int hashCode() {
return Objects.hash(field1, field2, field3);
}-
Генерация IDE (IntelliJ IDEA/Eclipse обычно генерируют похожий на первый вариант код)
-
Использование Lombok аннотации:
java
@EqualsAndHashCode
public class MyClass { ... }Ключевые правила:
- Если
equals()возвращает true,hashCode()должен возвращать одинаковые значения - Желательно использовать простые числа (31, 17) для минимизации коллизий
- Примитивные поля можно хэшировать через
Integer.hashCode(),Double.hashCode()и т.д.

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