您的位置:首页 > 其它

在Boss 里已重写hascode和equals 方法,且b1、b2相同,为啥set还是添加相同元素????

2013-07-16 14:50 375 查看
这是一个实体类。
public class Boss {

private int id;

public Boss(int id) {
super();
this.id = id;
}

@Override
public String toString() {
return "Boss [id=" + id + "]";
}
public boolean equals(Object obj){
if(!(obj instanceof Boss)) return false;
Boss boss = (Boss)obj;
return boss.id==this.id;
}
public int hasCode(){
return id;
}

}

这是main 函数

public static void main(String[] args) {
Boss b1 = new Boss (1);
Boss b2 = new Boss (1);
Boss b3 = new Boss (2);
System.out.println(b1.equals(b2));
System.out.println(b1.hasCode());
System.out.println(b2.hasCode());
System.out.println(b1.hasCode()==b2.hasCode());
set1.add(b1);
set1.add(b2);
set1.add(b3);
System.out.println("set ======"+set1);
}

结果



在Boss 里已重写hascode和equals 方法,且b1、b2相同,为啥set还是添加相同元素????
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hascode equals
相关文章推荐