File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes HashSet allowing duplicates; please explain Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "HashSet allowing duplicates; please explain" Watch "HashSet allowing duplicates; please explain" New topic

HashSet allowing duplicates; please explain

Joe May

Joined: Sep 28, 2009
Posts: 22

if you see the above snippet.. i am modifying the object within a set and making it equal to another element in the set. After this modification, set s1 has duplicate elements. When i now try to add both the elements of set s1 into set s2, addition of second element in set s2 fails. It returns false. But no exception happens while modifying set s1. Can some one please explain this?
Ralph Cook
Ranch Hand

Joined: May 29, 2005
Posts: 479
From the javadoc for java.util.Set:

Note: Great care must be exercised if mutable objects are used as set elements. The behavior of a set is not specified if the value of an object is changed in a manner that affects equals comparisons while the object is an element in the set. A special case of this prohibition is that it is not permissible for a set to contain itself as an element.

I agree. Here's the link:
subject: HashSet allowing duplicates; please explain
It's not a secret anymore!