Java Map哈希码

jav*_*vaq 2 java map hashcode

这是计算的哈希码的最好办法Map,知道它可能包含的类型的项值,如:String,Integer,Object[]...?

Map.hashCode()返回浅哈希码.这意味着如果你String[]的地图中有一个,那么它也Map.hashCode()将使用由你返回的哈希String[].不幸的是,这不是我想要的(Object.hashCode()实施).但我想要Arrays.hashCode(String[])实施.

那么处理这个问题的最佳,通用的方法是什么?

Joh*_*ner 6

如果您需要知道两个映射是否包含相同的值,则需要编写深度比较方法.你不应该依赖hashCode.

即使使用完美的算法,也不可能每个可能的对象的每个可能的集合都可以由单个有符号整数唯一地表示.

Hashcode仅用于集合中的冲突减少,它不应该用于唯一标识对象.