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

How to override .equals to compare 2 arraylists of custom object based on 2 attributes in java

我有一个名为 employee 的对象,它有 2 个属性 first name 和 last name 如果 firstname 和 lastname 都相同,则这 2 个 employee 是相同的。

现在我有 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;
    }

现在我想使用名字和姓氏的组合来比较而不是 id。

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

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