我看过 Apache Commons Lang 的 HashCodeBuilder 和 Eclipse 的 hashCode() 生成器。不得不说 Eclipse 的 hashCode() 非常丑陋,但是就性能而言,作为 HashCodeBuilder 会更好吗(因为构建器需要额外创建一个对象)?
我还想知道您对 equals() 生成和 Commons Lang 的 EqualsBuilder 的看法。
如果您有更好的解决方案,请也发布它们:)
最佳答案
HashCodeBuilder
比编写您自己的哈希函数要慢得多。它使用反射来遍历每个字段。如果您频繁调用此方法,您可能会看到性能下降,这对于您的情况来说可能是可以容忍的,也可能是不能容忍的。
eclipse 生成的hashCode
函数使用质数来帮助创建更好的散列函数。 Why use a prime number in hashCode?有一些关于为什么会这样的细节
关于java - Commons Lang HashCodeBuilder 与 Eclipse hashCode() 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036548/