正确的 equals()方法必须满足下列5 个条件:
1. 自反性:对任意 x,x.equals(x)一定返回true。
2.对称性:对任意x 和y,如果y.equals(x)返回true,则x.equals(y)也返回true。
3.传递性:对任意x,y,z,如果有x.equals(y)返回ture,y.equals(z)返回true,
则x.equals(z)一定返回true。
4.一致性:对任意 x 和y,如果对象中用于等价比较的信息没有改变,那么无论
调用x.equals(y)多少次,返回的结果应该保持一致,要么一直是true,要么
一直是false。
5.对任何不是 null 的x,x.equals(null)一定返回false。
再说一次,默认的 Object.equals()只是比较对象的地址
1. 自反性:对任意 x,x.equals(x)一定返回true。
2.对称性:对任意x 和y,如果y.equals(x)返回true,则x.equals(y)也返回true。
3.传递性:对任意x,y,z,如果有x.equals(y)返回ture,y.equals(z)返回true,
则x.equals(z)一定返回true。
4.一致性:对任意 x 和y,如果对象中用于等价比较的信息没有改变,那么无论
调用x.equals(y)多少次,返回的结果应该保持一致,要么一直是true,要么
一直是false。
5.对任何不是 null 的x,x.equals(null)一定返回false。
再说一次,默认的 Object.equals()只是比较对象的地址