本帖最后由 罗玉宁 于 2013-3-14 14:15 编辑
HashSet会调用该对象的hashcode方法来得到该对象的hashcode值,然后根据该hashcode值来决定该对象在HashSet中存储位置。如果有两个元素通过equals方法比较返回true,但他们的hashcode值不想等,HashSet将会把他们存储在不同的位置。如果有多个元素的hashcode相同,但是他们通过equal方法返回false。这时添加也成功,那么取值的时候是否是根据hashcode查找呢?如果是,那么取出来的是谁呢? |
|