Встречается на собеседованиях • сегодня
Какие методы необходимо переопределить для корректной работы HashSet
Для корректной работы HashSet необходимо переопределить hashCode() и equals() у объектов, которые будут храниться в множестве.
Почему?
hashCode()определяет корзину, в которую попадет элемент.equals()проверяет равенство объектов внутри корзины.
Пример:
java
class Person {
private String name;
private int age;
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return age == person.age && Objects.equals(name, person.name);
}
}Важно:
- Если
equals()возвращаетtrue, тоhashCode()должен возвращать одинаковые значения. - Нарушение контракта может привести к дублированию элементов или некорректному поиску.

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