【发布时间】:2013-05-15 06:56:31
【问题描述】:
如果我想检查 MyClass 类的某个 Object 是否包含在 ArrayList 等中,我可以覆盖 equals。
public boolean equals(Object o) {
.....
}
但是如果我想检查 MyClass 的对象是否包含在 HashMap 或 HashSet 中,我该怎么办? 我猜 hashCode 必须被覆盖?这是正确的吗?我该怎么做? 谢谢! 编辑:我完全了解 contains/containsKey 等。但是为什么覆盖列表而不是集合的等于就足够了。如果我只是测试一个数组列表是否包含一个对象,则覆盖的方法可以正常工作。对于 Set 来说,这还不够。我的问题是我还需要覆盖什么 i.o.去实现它。我不想要一个额外的方法,我猜关键在于 hashCode。
【问题讨论】:
-
您是要找出键还是值?