【发布时间】:2011-06-28 00:06:35
【问题描述】:
给定两个列表,每个列表都包含相同的对象类型,我想根据一些属性值在两个列表之间找到匹配的对象。
例如来自 List1 的对象 L1Obj 匹配来自 List2 的对象 L2Obj,如果 L1Obj.a == L2Obj.a AND L1Obj.b == L2Obj.c AND L1Obj.c == L2Obj.c
这些属性不是类的唯一属性,而是唯一标识列表中的对象所需的全部属性。
我的问题是 - 实现这一目标的最佳方法是什么?
一种方法是根据列表构造 HashMaps,将 a+b+c 的串联字符串值用作索引对象的键。这样我就可以遍历第一个列表,并尝试使用相同的键在第二个列表中查找对象。
这听起来怎么样?有没有更好的方法来实现这一点??
非常感谢所有帮助!
更新:
好的,所以实际上我需要更多。找到匹配项后,我想用 L2Obj 的属性覆盖属性 L1Obj.x、L1Obj.y、L1Obj.z。 HashSet 听起来很适合查找匹配项,但如果我是对的,它实际上并不允许我访问这些匹配项。
对此我能做些什么?
【问题讨论】:
-
你能编辑存储在列表中的类的代码吗?
标签: java algorithm list data-structures