嗨,大家好,欢迎来到程序猿漠然公众号,我是漠然。
在Java编程中,equals()
和hashCode()
这两个方法如同对象的“双胞胎”,总是成对出现。它们决定了对象在集合中的“身份”和“地位”。今天,我们就来深入解析这两个方法的奥秘,以及如何正确地使用它们。
equals()方法
equals()
方法是用来判断两个对象是否“相等”的。在Java中,“相等”意味着两个对象的内容完全一致,而不仅仅是它们的内存地址相同。 使用规范:
- • 自反性:
x.equals(x)
必须返回true
。 - • 对称性:如果
x.equals(y)
返回true
,则y.equals(x)
也必须返回true
。 - • 传递性:如果
x.equals(y)
和y.equals(z)
都返回true
,则x.equals(z)
也必须返回true
。 - • 一致性:多次调用
x.equals(y)
应该总是返回相同的值。 - • 非空性:任何非
null
的引用值x
,x.equals(null)
必须返回false
。
hashCode()方法
hashCode()