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;
}
}