我有一個類型爲HashMap<Long, ArrayList<String>>
的散列表。重寫HashMap實現的equals()和hashCode()方法
我需要重寫equals()和hashCode()方法來獲得性能。在這種情況下,最重要的功能應該是什麼?
我知道確切的沒有。的元素我會放在HashMap中,因此我已經使用了initial Capacity = (No. Of Elements that will be put)/ 0.75
其中0.75 =>加載因子, 這是正確的嗎?
我有一個類型爲HashMap<Long, ArrayList<String>>
的散列表。重寫HashMap實現的equals()和hashCode()方法
我需要重寫equals()和hashCode()方法來獲得性能。在這種情況下,最重要的功能應該是什麼?
我知道確切的沒有。的元素我會放在HashMap中,因此我已經使用了initial Capacity = (No. Of Elements that will be put)/ 0.75
其中0.75 =>加載因子, 這是正確的嗎?
的HashMap
的equals(..)
方法具有線性複雜度(當你使用一個對象作爲一個HashMap
關鍵,你應該確保它有那些方法一致的實現您是在正確的)。 ArrayList
也是如此。我認爲它不會更好 - 你必須比較每個元素
你可以假設Java庫的對象,如Long
,ArrayList
和String
有equals()
和hashCode()
正確的實現。
爲什麼你認爲HashMap上的equals()和hashCode()方法是性能瓶頸?這些課程經過了充分測試,並在各地使用。 – Jeremy 2011-03-10 23:28:49
對於所有Map和Collection實現的'equals'和'hashCode'方法都有非常具體的合約。正如其他人所說的,你不會比合同中現有的實現更好。 – ColinD 2011-03-10 23:29:07