2015-03-31 59 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

相關問題