Java中.equals方法功能简介说明
下文笔者讲述equals方法的功能简介说明,如下所示
Person类的equals方法的重写示例
.equals方法简介
.equals方法 是Java语言中Object类中的一个方法 其功能是判断两个对象是否相等
equals方法定义
public boolean equals(Object obj) { return (this == obj); } 其中this代表当前对象 obj则是待比较的对象 此处“==” 是比较两个对象在内存中的地址是否相同
.equals方法的重写
对于用户自定义的类 如果想要用equals方法进行对象比较 需要重写equals方法 通常情况下 我们会将equals方法重写为判断两个对象中某些属性值是否相等例:
Person类的equals方法的重写示例
public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return Objects.equals(name, person.name) && Objects.equals(age, person.age); }
.equals方法的使用
在Java中 equals方法经常与==运算符混淆
String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello"); System.out.println(str1 == str2);//输出true System.out.println(str1 == str3);//输出false 而equals方法 则用于比较两个对象的内容是否相同 即实际值是否相等 例 String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello"); System.out.println(str1.equals(str2));//输出true System.out.println(str1.equals(str3));//输出true 当然,在使用equals方法比较两个对象时,需要确保其重写实现正确无误。
.equals方法的注意事项
1、在重写equals方法时,需要遵循以下几个原则: 自反性: 对于任意的引用类型x,x.equals(x)应该始终返回true。 对称性: 对于任意的引用类型x和y,如果x.equals(y)返回true,那么y.equals(x)应该同样返回true。 传递性: 对于任意的引用类型x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)应该同样返回true。 一致性: 对于任意的引用类型x和y,如果对象x和y的状态没有发生变化,那么多次调用x.equals(y)应该返回相同的结果。 非空性: 对于任意的引用类型x,x.equals(null)应该始终返回false。 2、在比较两个对象时, 需要根据具体情况选择适当的比较方式。 在一些特殊的场景下 例: 比较时间、数组、Map等,需要采用特定的比较方式或者使用相关的工具类(如Arrays.equals())。 3、在使用自定义的类时 需要注意该类是否已经重写equals方法 如果没有重写,那么默认使用的是Object类的equals方法,此时比较的是对象在内存中的地址是否相同
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。