一:hashcode方法
根据hash算法返回一个int类型的值,hash算法可能包含(字段名称,长度,类型)等方面来进行计算。一般比较两个对象需要先比较hashcode值是否一样,但是hashcode值一致并不代表两个对象相等,只是相等的必要而非充分条件。
二:==
一般用于int基本数据类型及其包装类型Interger之间的比较,返回值是一个boolean类型。如相等返回true,否则返回false.
三:equals方法
一般用于比较两个对象是否相等,返回值是一个boolean类型的结果。
在写java pojo实体类的时候一般会重写equals()。1,比较两个对像的地址值 2, 判断对象是否为空及类判断 3,依次进行每个值的判断。
具体的代码如下
public class User {
private String age;
private String name;
private String time;
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
@Override
public int hashCode() {
return Objects.hash(age,name,time);
}
@Override
public boolean equals(Object obj) {
if(obj ==this) {
return true;
}
if(obj ==null || getClass() != obj.getClass()){
return false;
}
User user = (User) obj;
return age == user.age && Objects.equals(name,user.name) && Objects.equals(time,user.time);
}
}