我正在尝试检查mylist
是否包含给定对象,其中mylist
是ArrayList
类型myCustomClass
。
答案 0 :(得分:3)
如果您向列表添加MyCustomClass
的实例,然后检查它是否包含另一个MyCustomClass
实例,它将始终返回false,除非您覆盖equals
方法你的自定义类。 equals方法检查另一个对象是否在功能上等于该对象。
每次重写equals方法时,请务必覆盖hashCode
方法。 hashCode
应为两个相等的对象返回相同的值。此外,应该写出等于它的对称:a.equals(b)
当且仅当b.equals(a)
。
检查javadoc of java.lang.Object
中的equals和hashCode。
答案 1 :(得分:1)
您很可能尚未在equals()
上实施hashcode()
和myCustomClass
。您需要根据合同正确实施它们,有关详细信息,请参阅here。