我已经看过Apache Commons Lang的HashCodeBuilder和Eclipse hashCode()的生成。我不得不说Eclipse的hashCode()非常丑陋,但是就性能而言,是否最好用作HashCodeBuilder(因为构建器需要创建额外的对象)?
我还想知道您对equals()生成和Commons Lang的EqualsBuilder的看法。
如果您有更好的解决方案,也请发布它们:)
最佳答案
HashCodeBuilder
比编写自己的哈希函数要慢得多。它使用反射来遍历每个字段。如果您经常调用此方法,则可能会遇到性能下降的情况,这种情况可能会或可能无法满足您的情况。
eclipse生成的hashCode
函数使用质数来帮助创建更好的哈希函数。 Why use a prime number in hashCode?详细说明了为什么