加拿大华人论坛 德国工作一个问题,java高手进
在加拿大
把你重写的taetigkeit里面的hashcode和equals方法发来看看.
还可以在remove设断点调试,记录你调用remove的时候那个taetigkeit的hash码和当时set里面的那个taetigkeit的hash码.
或者简单试试再add一个taetigkeit看set会不会拒绝.
评论
解决了就好,基本上看你描述问题就出在对对象是否相等的判断上,如果hashset用你想移除的那个obj和他里面包含的obj比较得出结果是不一致,就不会移除.一般这种情况就是去检查hashcode和equals方法的实现,
hashset判断是否重复的工作原理搜一下就有,首先调用 obj 的 hasCode 方法得到该对象的哈希码,HashSet 会把它的哈希码转换成一个数组下标来记录这个obj 的位置.位置是空,那么就把obj对象添加到链表上,如果不为空,那就遍历这个链表,用obj的equals方法来判断是否和其中的某个元素重复.
如果出现你创建两个同样的对象但是都可以放入hashset的情况,那基本上就是hashcode和equals实现有问题
评论
如你所描述,这个Hashset是Immutable的,来自某个(接口),不允许编辑
评论
http://stackoverflow.com/questio ... bject-that-is-equal
·加拿大新闻 剑指吉利星愿,6.28万起售的极狐T1,能否成极狐爆款?
·加拿大新闻 CRA税太狠!BC省71岁阿姨$67万RRSP,再不这么处理,一笔税会高到
·加拿大新闻 印度人公开兜售“加拿大国门“:假签证$4万 偷渡边境$4000!
·加拿大新闻 4.29万元配倒车影像、直流快充…微型纯电市场再迎新成员
·加拿大新闻 奔驰深陷消费纠纷泥潭,如何重塑豪华口碑?
·中文新闻 ASIC V ANZ:银行承认不当行为,同意2.4亿美元的和解
·中文新闻 布鲁斯·威利斯(Bruce Willis)痴呆症:妻子艾玛·海明·威利斯(