加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在两个对象的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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读