Java中基于等式的哈希代码生成
我将把数据库中存在的对象列表(Employee实体类)提取到List1。我将从excel工作表中读取对象列表,称为List2
Employee实体类将具有多个属性,如firstName、middleName、lastName、age、phoneNumber、address、SSN、employeeId等
基于以下任一条件,列表1中的对象o1将等于列表2中的对象o2: 1.o1和o2的名字、中间名和姓氏相等。 2.o1和o2的SSN相等。 3.o1和o2的雇员ID相等
如果o1和o2基于上述任一条件相等,则意味着它应将o2的地址、电话号码等属性更新为o1。 如果o1!=o2,然后在数据库中创建一个新记录。 以上内容可以通过对这些列表进行多次迭代来实现
但我正在寻找一种设计来构造两个HashMaps map1和map2,一个用于现有记录(列表1),另一个用于excel工作表中的新记录(列表2)
HashMap的键应该是[firstName、middleName、lastName]或[SSN]或[employeeId]的哈希代码,该值将是整个对象。 这样我可以从map1中获取密钥,并在map2中按密钥查找,如果存在,则将map2中的其他属性更新为map1,并将其保存到数据库中
不确定如何构建此HashCode方法。这可能还是会违反标准
# 1 楼答案
这里只有两个标准:
hashCode
应该只依赖于对象的字段李>在这种情况下,无法按照上述规则构建
hashCode
因为你可以有三个人:
这三个人都应该返回相同的}将取决于比较的上下文,而不仅仅是字段。怎么了
hashCode
,因为他们是equal
。但是它们的hashCode
应该只依赖于字段。 结论是——在这种情况下,{