如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?...
2019獨角獸企業重金招聘Python工程師標準>>>
如果兩個對象具有相同的哈希碼,但是不相等的,它們可以在HashMap中同時存在嗎?
----答案是 可以
原因:
在hashmap中,由于key是不可以重復的,他在判斷key是不是重復的時候就判斷了hashcode這個方法,而且也用到了equals方法。
這里不可以重復是說equals和hashcode只要有一個不等就可以了。
例子:
TestObject t1= new TestObject();
t1.A=1;
TestObject t2= new TestObject();
t1.A=2;
Map map= new HashMap();
?
@Override
public?int?hashCode()?{
return?5;
}
?
map.put(t1, "A");
map.put(t2,"B");
System.out.println(map.get(t1));
System.out.println(map.get(t2));
?
----A
? ? ? B
| 一、當我們向一個set、HashMap、HashSet、HashTable集合中添加某個元素,集合會首先調用該對象的hashCode方法, 這樣就可以直接定位它所存儲的位置,若該處沒有其他元素,則直接保存。 |
轉載于:https://my.oschina.net/chinaxy/blog/1825329
總結
以上是生活随笔為你收集整理的如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: adas--智能驾驶辅助系统
- 下一篇: 绝对定位和相对定位的口诀---子绝父相