Встречается на собеседованиях • сегодня
Как вычисляется hashCode() объекта
В Java hashCode() вычисляется на основе внутреннего состояния объекта. Стандартная реализация в Object возвращает уникальный числовой идентификатор (часто основанный на адресе памяти), но рекомендуется переопределять hashCode() для своих классов.
Основные правила:
- Если
equals()возвращаетtrueдля двух объектов, ихhashCode()должен быть одинаковым - Одинаковый
hashCode()не гарантирует равенство объектов hashCode()должен быть консистентным (возвращать одно значение при многократных вызовах)
Пример переопределения:
java
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + age;
return result;
}Обычно используют простые числа (часто 31) для минимизации коллизий. В современных Java можно использовать Objects.hash() для упрощения:
java
@Override
public int hashCode() {
return Objects.hash(name, age);
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы