“==”操作符,是比較變量的值是否相等(內存地址也要相等),不涉及對象內容的比較;
equals方法,是比較對象的內容是否相等(不涉及內存地址的比較,如果是自己創建的類就必須重寫equals方法,創造者來決定equals的判斷標準)。
例如:String s1 = new String(“foo”);
String s2 = new String(“foo”);
那麼s1 == s2爲false,s1.equals(s2)爲true。
下面是一個equals重寫的基本步驟:
@Override
public boolean equals(Object obj){
if(obj == null)
return false;
if(this == obj)
return true;
if(obj instanceof User){
User other = (User)obj;
return this.id == other.id;
}
return false;
}
@Override
public int hashCode(){
return id<<7;
}