2011-03-10 250 views
0

我有一個類型爲HashMap<Long, ArrayList<String>>的散列表。重寫HashMap實現的equals()和hashCode()方法

我需要重寫equals()和hashCode()方法來獲得性能。在這種情況下,最重要的功能應該是什麼?

我知道確切的沒有。的元素我會放在HashMap中,因此我已經使用了initial Capacity = (No. Of Elements that will be put)/ 0.75

其中0.75 =>加載因子, 這是正確的嗎?

+1

爲什麼你認爲HashMap上的equals()和hashCode()方法是性能瓶頸?這些課程經過了充分測試,並在各地使用。 – Jeremy 2011-03-10 23:28:49

+0

對於所有Map和Collection實現的'equals'和'hashCode'方法都有非常具體的合約。正如其他人所說的,你不會比合同中現有的實現更好。 – ColinD 2011-03-10 23:29:07

回答

4

HashMapequals(..)方法具有線性複雜度(當你使用一個對象作爲一個HashMap關鍵,你應該確保它有那些方法一致的實現您是在正確的)。 ArrayList也是如此。我認爲它不會更好 - 你必須比較每個元素

1

你可以假設Java庫的對象,如LongArrayListStringequals()hashCode()正確的實現。

相關問題