开发者

myArralist.contains(obj) always return false though myArraylist contain specified obj in java?

开发者 https://www.devze.com 2023-03-31 01:48 出处:网络
I am trying to check wether mylist contains a given object or not, where mylist is an 开发者_Python百科ArrayList of type myCustomClass.If you add an instance of MyCustomClass to the list, and then che

I am trying to check wether mylist contains a given object or not, where mylist is an 开发者_Python百科ArrayList of type myCustomClass.


If you add an instance of MyCustomClass to the list, and then check if it contains another instance of MyCustomClass, it will always return false, unless you override the equals method in your custom class. The equals method checks if another object is functionally equal to this object.

Make sure to override the hashCode method each time you override the equals method. hashCode should return the same value for two equal objects. Also, equals should be written so that it's symmetric: a.equals(b) if and only if b.equals(a).

Check equals and hashCode in the javadoc of java.lang.Object.


You most likely haven't implemented equals() and hashcode() on myCustomClass. You need to implement them properly and according to contract, see here for details of how.

0

精彩评论

暂无评论...
验证码 换一张
取 消