如何重写该自定义对象的equals()方法,以便List.contains()方法能够正确地比较元素是否相等
时间: 2024-03-21 17:43:34 浏览: 51
重写equals方法
重写自定义对象的equals()方法,可以使用以下步骤:
1. 检查传入参数是否为null,如果是则返回false。
2. 检查传入参数是否为当前对象的实例,如果是则返回true。
3. 检查传入参数是否属于该对象的类或其子类,如果不是则返回false。
4. 将传入参数转换为该对象的类型。
5. 比较该对象的每个字段是否相等,如果所有字段都相等,则返回true,否则返回false。
以下是一个示例代码:
```java
public class MyObject {
private int id;
private String name;
// constructors, getters and setters
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (getClass() != obj.getClass()) {
return false;
}
MyObject other = (MyObject) obj;
if (id != other.id) {
return false;
}
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
return true;
}
}
```
在这个例子中,我们将MyObject类的id和name字段作为比较对象的依据。如果两个MyObject对象的id和name都相等,那么它们就被认为是相等的。这样,我们就可以使用List.contains()方法来比较MyObject对象是否相等了。
阅读全文