Sobes.tech
Back to tasks
Junior — Senior
113

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

Companies where asked:
СБЕРСБЕР

Task condition

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;
}