java编程正确重写hashCode和equesl方案
Posted 无信不立
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编程正确重写hashCode和equesl方案相关的知识,希望对你有一定的参考价值。
一、 正确书写hashCode的办法:
【原则】按照equals( )中比较两个对象是否一致的条件用到的属性来重写hashCode()。
{1}. 常用的办法就是利用涉及到的的属性进行线性组合。
{2}. 线性组合过程中涉及到的组合系数自定义即可。
注意,拼接之后的数值不能超过整形的表达范围。
{3}. 公式:属性1的int形式+ C1*属性2的int形式+ C2*属性3的int形式+ …
【技巧】当属性是引用类型的时候,如果已经重写过hashCode(),那么这个引用属性的int形式就是直接调用属性已有的hashCode值。
最典型的就是这个属性是字符串类型的,String类型已经重写了hashCode()方法,所以直接拿来使用即可。
以上是关于java编程正确重写hashCode和equesl方案的主要内容,如果未能解决你的问题,请参考以下文章
JAVA正确地自定义比较对象---如何重写equals方法和hashCode方法