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