java – Eclipse生成的equals是否有任何特殊原因使用1231和1237的值作为布尔值?

前端之家收集整理的这篇文章主要介绍了java – Eclipse生成的equals是否有任何特殊原因使用1231和1237的值作为布尔值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
标题基本上都说明了一切.我尝试过谷歌搜索,但返回了大量的误报.我想我只是想知道这两个具体数字背后是否有一定的理由,或者他们是否很容易就有其他许多数字?

编辑:并且,由于数字的来源已被回答,布尔hashCode方法的编写者使用这些数字的任何理由(除了他们是素数)?其他任何一个素数都可以效果吗?

解决方法

散列函数倾向于 collisions.使用素数可以减少碰撞次数(考虑素数所具有的因子). 1231和1237都是素数.

/ E1
在做了一点研究后,我遇到了this

Since they most probably will have no common divisors with the hashtable size (unless the prime itself divises the hashtable size),the chances of collision in common hashtable implementations would be minimized.

猜你在找的Java相关文章