equals和hashCode 工作
程序员文章站
2022-06-08 21:11:09
...
public class Person { private int id; private String name; private String password; private double salary; private int hashCode; public Person(int id,String name,String password,double salary) { this.id = id; this.name = name; this.password = password; this.salary = salary; } public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof Person)) { return false; } Person other = (Person)obj; if (this.id != other.id) { return false; } if (!nullSafeEquals(this.name,other.name)) { return false; } if (!nullSafeEquals(this.password,other.password)) { return false; } if (Double.doubleToLongBits(this.salary) != Double.doubleToLongBits(other.salary)) { return false; } return true; } private boolean nullSafeEquals(Object obj1,Object obj2) { return obj1 == null ? obj2 == null : obj1.equals(obj2); } public int hashCode() { if (hashCode == 0) { int result = 17; result = result * 37 + this.id; result = result * 37 + (this.name == null ? 0 : this.name.hashCode()); result = result * 37 + (this.password == null ? 0 : this.password.hashCode()); long temp = Double.doubleToLongBits(this.salary); int salaryInt = (int)(temp ^ (temp >>> 32)); result = result * 37 + salaryInt; hashCode = result; } return hashCode; } public String toString() { return super.toString() + ": [" + this.name + "]"; } }
上一篇: 在CMD下如何运行PHP程序
推荐阅读
-
CDR怎么自定义工作区域的边缘线和颜色和大小?
-
多年营销软文工作者经验分享:傍名人、蹭热点和互动
-
Java连载57-equals重写、finalize方法、hashCode方法
-
Java常见面试问题: equals()与hashCode()的使用
-
适合女生的高收入工作排名 记者、营养师和企业公关上榜
-
Session的工作机制详解和安全性问题(PHP实例讲解)
-
PHP编程最快明白(第一讲 软件环境和准备工作)
-
Python工作好找吗?没有工作经验和学历怎么找?【就业必学】
-
Excel 工作簿窗口显示比例、排列及拆分和冻结等操作示例详解
-
Excel工作表常用操作 添加、删除、重命名、移动和复制、隐藏保护等