这是一个实体类。
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还是添加相同元素????