obj1
является дубликатом obj2
, если obj1.equals(obj2)
возвращает true. Итак, как вы можете видеть, определение равенства действительно зависит от реализации равенства.
Вы можете написать набор, скажем, DistincObjectSet, где дубликат означает obj1==obj2
Другой пример: у вас может быть EmployeeSet, где duplicate означает obj1.employeeNo == obj2.employeeNo, в этом случае вы должны перезаписать метод equals () в классе Employee для сравнения чисел сотрудников.
Конструкция API-интерфейса Set говорит о том, что вы пытаетесь добавить дублирующий элемент, метод add () должен возвращать значение false, а не генерировать Exception.