这是计算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