LinkedHashSet для объектов без переопределенных hashCode() и equals()
У меня есть следующая коллекция объектов:
Set<MyClass> test = new LinkedHashSet<MyClass>();
но MyClass
не отменяет hashcode
а также equals
методы.
Может иметь вышеупомянутую коллекцию только уникальные объекты, даже если MyClass не переопределяет hashCode
а также equals
методы?
1 ответ
Решение
Реализация по умолчанию equals
проверить личность (т. е. использовать ==
оператор). Ваш LinkedHashSet
(или любой другой HashSet
(в этом случае) будет содержать уникальные объекты в том смысле, что вы не сможете добавить один и тот же объект дважды. Однако, если вы создадите два экземпляра совершенно одинаковым образом (например, передадите одни и те же аргументы в конструктор), ваш набор все равно будет содержать их оба, так как они не являются equals
,