HashCode怎么重写

将equals中涉及到的属性用来计算

 @Override
   public int hashCode() {
        int result = 17;
        result = 31 * result + mInt;
        result = 31 * result + (mBoolean ? 1 : 0);
        result = 31 * result + Float.floatToIntBits(mFloat);
        result = 31 * result + (int)(mLong ^ (mLong >>> 32));
        long mDoubleTemp = Double.doubleToLongBits(mDouble);
        result =31 * result + (int)(mDoubleTemp ^ (mDoubleTemp >>> 32));
        result = 31 * result + (mString == null ? 0 : mMsgContain.hashCode());
        result = 31 * result + (mObj == null ? 0 : mObj.hashCode());
        return result;
    }

https://blog.csdn.net/neosmith/article/details/17068365
https://blog.csdn.net/sunmenggmail/article/details/18660699
https://blog.csdn.net/abinge317/article/details/51437179

猜你喜欢

转载自blog.csdn.net/panbinxian/article/details/82108112