LinkedHashSet для объектов без переопределенных hashCode() и equals()

У меня есть следующая коллекция объектов:

Set<MyClass> test = new LinkedHashSet<MyClass>();

но MyClass не отменяет hashcode а также equals методы.

Может иметь вышеупомянутую коллекцию только уникальные объекты, даже если MyClass не переопределяет hashCode а также equals методы?

1 ответ

Решение

Реализация по умолчанию equals проверить личность (т. е. использовать == оператор). Ваш LinkedHashSet (или любой другой HashSet(в этом случае) будет содержать уникальные объекты в том смысле, что вы не сможете добавить один и тот же объект дважды. Однако, если вы создадите два экземпляра совершенно одинаковым образом (например, передадите одни и те же аргументы в конструктор), ваш набор все равно будет содержать их оба, так как они не являются equals,

Другие вопросы по тегам