为什么不能自己做网站,微信公众号会员卡管理系统,外管局网站上做预收登记,网页框架与布局编写equals()和hashCode()方法需要遵循以下原则#xff1a;
1. equals()方法#xff1a;
- 使用instanceof关键字检查传入的对象是否为当前类的实例。
- 检查传入的对象是否为null。
- 检查传入的对象的类型是否与当前对象的类型相同。
- 比较对象的属性是否相等#x…编写equals()和hashCode()方法需要遵循以下原则
1. equals()方法
- 使用instanceof关键字检查传入的对象是否为当前类的实例。
- 检查传入的对象是否为null。
- 检查传入的对象的类型是否与当前对象的类型相同。
- 比较对象的属性是否相等可以使用Objects.equals()方法来比较属性值。
2. hashCode()方法
- 选择一种或几种属性来计算哈希值确保计算出的哈希值在对象相等时始终相同。
- 通常情况下选择所有用于比较相等性的属性来计算哈希值。
下面是一个示例演示如何编写equals()和hashCode()方法 1. public class Person {2. private String name;3. private int age;4. // 构造方法、getter和setter方法省略5. Override6. public boolean equals(Object o) {7. if (this o) return true;8. if (o null || getClass() ! o.getClass()) return false;9. Person person (Person) o;
10. return age person.age Objects.equals(name, person.name);
11. }
12. Override
13. public int hashCode() {
14. return Objects.hash(name, age);
15. }
16. }
在上述示例中Person类重写了equals()和hashCode()方法。
- equals()方法首先使用运算符比较两个对象的引用是否相同如果相同则直接返回true否则继续比较。
- 接着使用instanceof关键字检查传入的对象是否为Person类的实例如果不是则返回false。
- 在比较属性值时使用了Objects类的equals()方法比较了两个对象的name和age属性是否相同。
- hashCode()方法使用了Objects类的hash()方法来计算哈希值使用了name和age属性。
这样在使用集合类如List、Set、Map时就能正确比较和存储Person对象了。
(文章为作者在学习java过程中的一些个人体会总结和借鉴如有不当、错误的地方请各位大佬批评指正定当努力改正如有侵权请联系作者删帖。)