重寫equals方法

Object類中的equals方法只有在同一個對象比較時纔會返回true,即if(obj1==obj1);

如果一新寫的一個類沒有重寫equals方法,則調用父類equals方法。


在使用容器的remove,contains等方法時,一定要重寫相應自己寫的類的equals和hashcode。



當equals被重寫時,通常有必要重寫 hashCode 方法,以維護 hashCode 方法的常規協定,該協定聲明相等對象必須具有相等的哈希碼


public class Point{ 
  private  int x; 
  private  int y; 
  public Point(int x, int y){ 
    this.x = x; 
    this.y = y; 
  } 

  public boolean equals(Object o){ 
    if(!(o instanceof Point)) 
      return false; 
    Point p = (Point)o; 
      return p.x == x && p.y == y; 
  } 

} 




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