2015-03-31 61 views
2

好只是知识,还有什么意义,将取得的Collection实现类,如hashmaphashset等如果object'shashcode方法总是在demoClass返回0。我知道它与hashmap或Collection实现的其他类的putForNullKey有关,但对细节知之甚少。我知道空对象hascode是0,所以它具有0散列码的特定方法。是什么在集合实现的影响时hashCode()返回零

@Override 
public int hashCode() { 
return 0; 
} 

回答

2

这将使依赖于hashCode非常低效HashMapHashSet和其他收藏品,因为所有的元素/项将被添加到同一箱。

方法如get()containsKey()并将采取O(n),而不是O(1)

顺便说一句,答案不是特定于0 hashCode。任何常数hashCode将表现完全一样。

+0

其他结构如“Set”呢? – 2015-03-31 06:56:28

+0

@BhargavModi我提到了HashSet。并非所有的Set实现都使用hashCode。 – Eran 2015-03-31 06:57:10

相关问题