solovladys
@solovladys
Люблю программировать

Вопрос с собеседования: Как в сет добавить два одинаковых объекта?

На собеседовании задали вопрос: Как можно сделать сет, который добавляет два одинаковых объекта? или как добавить два одинаковых объекта в сет?
Как лучше это сделать?
  • Вопрос задан
  • 1552 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
Правильный ответ: никак, на то он и сет.
Если вдруг такое понадобилось, то нужно использовать другую структуру для хранения. Можно даже назвать ее MyMagicSet чтобы взорвать кому-нибудь моск.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
solovladys
@solovladys Автор вопроса
Люблю программировать
Я полагаю, что в этом случае необходимо добавить идентификатор объекта, переопределить equals, в котором проверять по бакету самый большой id объекта с необходимыми нам данными. Если id>1, тогда не добавлять. Но опять же- объекты идентичны по полям, кроме id, а это уже изменение структуры класса, что не желательно.
Ответ написан
Комментировать
@Iloveski
Один и тот же объект два раза переопределить equals return false, hashcode подмешать рандомное число. Два объекта полностью одинаковых по полям можно. Еquals не переопределять ( ссылки на разные объекты). Hashcode переопределить подмешав случайное число в вычисление.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы