equals方法與"=="號的區別

==”操作符,是比較變量的值是否相等(內存地址也要相等),不涉及對象內容的比較;

equals方法,是比較對象的內容是否相等(不涉及內存地址的比較,如果是自己創建的類就必須重寫equals方法,創造者來決定equals的判斷標準)。

 

例如:String s1 = new String(“foo”);

      String s2 = new String(“foo”);

那麼s1 == s2falses1.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;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章