Как HashSet1.retainAll(HashSet2);
работать за кулисами?Как HashSet1.retainAll (HashSet2); работать за кулисами?
Я добавляю объекты с одинаковыми параметрами к двум различным HashSet
, но когда я использую приведенное выше, я, похоже, не получаю правильный результат. I.e он не обнаруживает, что это фактически те же параметры в объекте.
Этот метод выше, сравнивая фактический адрес моих объектов в наборе?
Если да, то как я могу заставить его сравнивать параметры объектов.
Возможно, переопределить равные?
Вам необходимо переопределить методы 'hashCode' и' equals'. – marstran
Спасибо @marstran, отлично поработал. –
Кстати, вам также нужно выполнить контракт двух методов, чтобы он работал должным образом. Если два объекта равны, они также должны иметь один и тот же хэш-код. Однако, если два объекта имеют один и тот же хэш-код, они могут быть не равными (из-за хеш-коллизий). – marstran