一, 正确书写 hashCode 的办法:
[原则] 按照 equals( ) 中比较两个对象是否一致的条件用到的属性来重写 hashCode().
{1}. 常用的办法就是利用涉及到的的属性进行线性组合.
{2}. 线性组合过程中涉及到的组合系数自定义即可.
注意, 拼接之后的数值不能超过整形的表达范围.
{3}. 公式: 属性 1 的 int 形式 + C1 * 属性 2 的 int 形式 + C2 * 属性 3 的 int 形式 + ...
[技巧] 当属性是引用类型的时候, 如果已经重写过 hashCode(), 那么这个引用属性的 int 形式就是直接调用属性已有的 hashCode 值.
最典型的就是这个属性是字符串类型的, String 类型已经重写了 hashCode() 方法, 所以直接拿来使用即可.
来源: http://www.bubuko.com/infodetail-2663044.html