如何在两个对象的java等式中评估列表
发布时间:2020-12-15 04:12:48 所属栏目:Java 来源:网络整理
导读:我有一个arrayList,我想使用contains(Thing o)方法检查这两个对象的相等性,我重写了Thing类中的equals()方法但是当我调用contains方法时这不起作用! 这是我的课程: public class Thing{private int id;//getter setter@Overridepublic boolean equals(Obje
我有一个arrayList,我想使用contains(Thing o)方法检查这两个对象的相等性,我重写了Thing类中的equals()方法但是当我调用contains方法时这不起作用!
这是我的课程: public class Thing{ private int id; //getter setter @Override public boolean equals(Object o) { if(!(o instanceof Thing)) return false; if(id == ((Thing)o).getId()) return true; return false; } } 是否有必要覆盖hashCode()方法?如果是,如何覆盖它? 解决方法
你应该覆盖hashCode. ArrayList类不使用hashCode方法,因此现在不需要,但是如果您在任何时候使用HashMap,HashSet或任何其他使用hashCode的集合,则程序将因
hashCode and equals are not consistent而中断.
对于这种情况,hashCode的简单实现可以是: public int hashCode() { return id; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |