Sobes.tech
Назад к задачам
Junior — Senior
148

Почему HashSet не распознаёт уже добавленный объект

Компании, где спрашивали:
СБЕРСБЕР

Условие задачи

livecode

В примере создаётся экземпляр класса Person, который помещается в HashSet, однако вызов метода contains() для того же объекта возвращает false. Что может быть причиной такого поведения?

public void personTask() {}
    Set<Person> people = new HashSet<>();
    Person person = new Person("Петров", "Петр", "Петрович");
    people.add(person);
    people.contains(person); // returns false

@Data
@AllArgsConstructor
private static class Person {
    private String firstName;
    private String lastName;
    private String middleName;
}