在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还是添加相同元素????
相关文章推荐
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- Set是如何实现元素不重复的&重写equals()方法之后也必须重写hashCode()方法
- 面试3 -- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- 【Java面试题】39 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?(例解)
- java集合框架(hashSet自定义元素是否相同,重写hashCode和equals方法)
- 深入详解SetHash的元素为什么要重写hashCode和equals方法
- HIBERNA里要重写HASCODE 和EQUALS这两个方法
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- 重写javascript的Array.prototype.push方法实现类似java.util.set添加不重复元素
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢 是用==还是equals() 它们有何区别
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- 重写equals和hasCode 方法 JDK1.7
- 2017-08-28-java-为什么要同时重写hasCode和equals
- HashSet存储元素equals() hashCode()方法重写