【发布时间】:2019-12-11 19:58:07
【问题描述】:
我会将数据库中存在的对象(员工实体类)列表提取到 List1。我将从 Excel 工作表中读取对象列表来表示 List2。
Employee 实体类将具有多个属性,例如,firstName、middleName、lastName、age、phoneNumber、address、SSN、employeeId 等。
基于以下任一条件,List1 中的对象 o1 将等于 List2 中的对象 o2: 1. o1 和 o2 的 firstName、middleName 和 lastName 相等。 2、o1和o2的SSN相等。 3. o1和o2的employeeId相等。
如果 o1 和 o2 基于上述任一条件相等,则表示应将 o2 的地址、电话号码等属性更新为 o1。 如果 o1 != o2,则在数据库中创建一条新记录。 以上可以通过对这些列表进行多次迭代来实现。
但我正在寻找一种设计来构造 2 个 HashMaps map1 和 map2,一个用于现有记录(List1),一个用于 excel 表(List2)中的新记录。
HashMap 的键应该是 [firstName, middleName, lastName] 或 [SSN] 或 [employeeId] 的 HashCode,值将是整个对象。 这样我就可以从map1中获取Key,并在map2中通过key查找,如果存在,将map2中的其他属性更新为map1并保存到数据库中。
不确定如何构建此 HashCode 方法。有可能还是会违反标准?
【问题讨论】:
-
在 HashMap 中使用 hashCode 作为键并不是一个好主意。您可以使用 HashSet 代替所有后果。最好将您的数据结构作为相关代码提供。
标签: java