关闭

重写equals方法

580人阅读 评论(0) 收藏 举报
分类:

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

} 




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8818次
    • 积分:215
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论