equals()重写

package com;


public class User {
private int id;
private String name;
private String password;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

public static void main(String[] args) {  
   User user1=new User();  
   User user2=new User();  
   user1.setName("111");
   user2.setName("111");
   if(user1.equals(user2)){  
       System.out.println("同一对象");  
   }else{  
       System.out.println("不同对象");  
   }  



}

equals()重写

重写hashCode(),equals(),结果改变

@Override  
public int hashCode() {  
   final int prime = 31;  
   int result = 1;  
   result = prime * result + ((name == null) ? 0 : name.hashCode());  
   return result;  
}  
 
@Override  
public boolean equals(Object obj) {  
   if (this == obj)  
       return true;  
   if (obj == null)  
       return false;  
   if (getClass() != obj.getClass())  
       return false;  
   User other = (User) obj;  
   if (name == null) {  
       if (other.name != null)  
           return false;  
   } else if (!name.equals(other.name))  
       return false;  
   return true;  
}  

equals()重写