给定两个列表,每个列表持有相同的对象类型,我想根据某些属性值找到匹配的两个列表之间的对象。java - 如何找到两个列表之间的匹配对象?
例如从列表1,L1Obj,一个对象匹配从列表2,L2Obj一个对象,如果L1Obj.a == L2Obj.a AND L1Obj.b == L2Obj.c AND L1Obj.c == L2Obj.c
这些特性是不该类的唯一属性,但是唯一需要唯一标识列表中的对象。
我的问题是 - 达到这个目标的最佳方法是什么?
一种方式是基于列表构造HashMap,将a + b + c的concataned String值用作索引对象的关键字。这样我可以遍历第一个列表,并尝试使用同一个键在第二个列表中查找对象。
听起来如何?有没有更好的方式来实现这一目标?
所有帮助非常感谢!
UPDATE:
好了,其实我需要多一点。找到匹配项后,我想用L2Obj的属性覆盖属性L1Obj.x,L1Obj.y,L1Obj.z。 HashSet听起来非常适合寻找匹配,但如果我是对的,它实际上并不允许我访问这些匹配。
我该怎么办?
你能编辑存储在列表中的类的代码吗? – Alb 2011-02-15 23:41:22
@Alb是我可以编辑代码 – QuakerOat 2011-02-16 00:20:24