【发布时间】:2011-10-26 02:08:07
【问题描述】:
我在LinkedHashSet 中有一个对象,它实现了equals、hashCode 和compareTo(在超类中),但是当我尝试从集合set.remove(obj) 中删除该确切对象时,remove 方法返回@ 987654328@ 并且对象保留在集合中。 LinkedHashSet 的实现是否应该调用其对象的 equals() 方法?因为它没有。这可能是一个java错误吗?我正在运行 1.6.0_25。
【问题讨论】:
-
First rule of programming: It's always your fault 没有看到您的代码,我们无法告诉您您做错了什么。
-
请在您的网络摄像头前举起一面镜子,以便我看到您的代码。哦,把所有的窗口都倒过来,这样我就不用倒着读了。在这一点上,我......怀疑这是一个 Java 错误。
-
把
equals()和hashCode()的代码贴在这里 -
测试
equals在您传递的对象上删除,并且您认为应该首先删除的对象。 -
如果
HashSet是equal(),则删除一个元素。 download.oracle.com/javase/6/docs/api/java/util/…
标签: java linkedhashset