如何覆盖.equals以基于java中的2个属性比较2个自定义对象的arraylists

时间:2015-01-25 13:14:17

标签: java arraylist collections

我有一个名为employee的对象,它有2个属性名字&姓氏如果名字和姓氏相同,则2名员工是相同的。

现在我有2个员工列表,我想查看list.equals(list)

之前我使用 id ,并覆盖 .equals ,如下所示

@Override
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        }
        if (obj == null || obj.getClass() != this.getClass()) {

            return false;
        }
        SMS sms = (SMS) obj;


        return sms.getID() == this.getID();


    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 17 * hash + (this.getID() != null ? this.getID().hashCode() : 0);
        return hash;
    }

现在我想使用firstname和lastname的组合来比较而不是id。

1 个答案:

答案 0 :(得分:1)

您可以在比较equals方法中的id时比较firstName和lastName。确保使用equals来比较firstName和lastName而不是“==”,假设它们是字符串。

此外,如果您打算这样做,请确保相应地调整hashCode方法。