自定义类都继承自Object,所以在对比时需要复写equals和hashcode。
可以使用java7只java.util.objects;来实现复写,比手动写要轻松得多。
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof User)) {
return false;
}
User u = (User) obj;
return name == u.getName() && age == u.getAge();
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
对实体类实现Cloneable接口并实现clone()方法可以对其进行克隆,简单类型对象直接new会比克隆快10倍左右,而对复杂对象来说,克隆比new快近50倍