這是計算Map
的哈希碼的最佳途徑,知道它可能包含的類型,如項值:String
,Integer
,Object[]
...?的Java地圖哈希碼
Map.hashCode()
返回一個淺的散列碼。這意味着如果您的地圖中有String[]
,則Map.hashCode()
也將使用String[]
返回的散列。不幸的是,這不是我想要的(Object.hashCode()
實現)。但我想要Arrays.hashCode(String[])
實施。
那麼最好的,通用的方法來處理呢?
我認爲你的地圖是不可變的?如果你添加/刪除條目,你的基於值的hashCode()是註定的。 – 2010-12-10 17:37:17
我想大多數人最初的問題將是「爲什麼?」你在做什麼,你需要改變地圖的哈希碼?計算一個「深」哈希碼可能會使該操作相當昂貴... – 2010-12-10 17:37:22
@Kirk Woll:請詳細說明,這有什麼意義? – javaq 2010-12-10 17:40:01