Java hash(对象…值):如何定义值的hash?

Java hash(对象…值):如何定义值的hash?,java,hash,Java,Hash,计算对象时,参数散列是如何组合的。散列(对象…值) 下面是表示它相当于Arrays.hashCode(Object[])。这就打开了一个问题:后者究竟是如何计算哈希的?事实上,列表中int hashCode()的文档中已经给出了答案。(亚西尔亚斯建议) 正如您所指出的,Objects.hash(Object…相当于Arrays.hashCode。这种方法反过来说,它是一种有效的方法。hashCode的列表接口,它必须等效于: int hashCode = 1; for (E e : list

计算
对象时,参数散列是如何组合的。散列(对象…值)


下面是表示它相当于
Arrays.hashCode(Object[])
。这就打开了一个问题:后者究竟是如何计算哈希的?

事实上,列表中int hashCode()的文档中已经给出了答案。(亚西尔亚斯建议)


正如您所指出的,
Objects.hash(Object…
相当于
Arrays.hashCode
。这种方法反过来说,它是一种有效的方法。hashCode的列表接口,它必须等效于:

 int hashCode = 1;
 for (E e : list)
     hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());

我假设您已经阅读了此方法的代码。。。。那么你在问什么?为什么不继续钻取和?@PeterLawrey这个算法实际上是在javadoc(of List)中指定的。我想他不理解这个。
 int hashCode = 1;
 for (E e : list)
     hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());