java的hashCode()是否确定?

etz*_*rid 8 java hash search-engine hashcode

是java的hashCode()确定性?

我尝试实现一个使用minhashing算法的文档搜索引擎,并使用hashCode预先哈希单词.每次运行它时,同一个单词是否会获得相同的哈希值?

即使我从另一台机器(32位对64位)运行它,它是否会得到相同的哈希?

Ste*_*ppo 11

这取决于你所指的课程.Object.hashCode从那时起,基础实施不是如文件中所述:

尽可能合理,Object类定义的hashCode方法确实为不同的对象返回不同的整数.(这通常通过将对象的内部地址转换为整数来实现,但JavaTM编程语言不需要此实现技术.)

地址不是确定性的,考虑到有时它们甚至被用作熵的来源.

但是,例如,String确定性哈希码确定如下:

维基百科的公式

(图片来自维基百科)

在某些情况下,哈希码甚至没有合理的确定性定义.

  • 我只说公式图像是从维基百科复制的,而不是我用它作为参考.澄清. (2认同)