我需要一个匹配2组对象A和B的模式。这两个对象的类型不同。
当3个成员匹配时,匹配2个对象。 2个匹配的对象可以包含不同的成员。
处理如下:
在A中找到B中的匹配对象。 检查matcing对象中成员变量X的值。 如果X不同,请将匹配的对象添加到“修改过的”对象中。设置和 将A中匹配的对象替换为B中匹配的对象。
A和B中的对象数量应相等。如果没有,我应该结束处理。基本上,B是A的潜在更新。如果有更新,我需要一个新的A(新A)和B中与A(修改)不同的对象列表。
我尝试使用CollectionUtils.select循环遍历两个列表并进行匹配,但我想知道是否有更清晰的解决方案。
E.g。 (为简洁起见,如果Ref相同,则2个对象匹配)
A
Ref x
abc1 100
abc2 200
abc3 300
abc4 400
B
Ref x
abc1 700
abc2 200
abc3 600
abc4 400
abc5 500
Result:
Modified
abc1 700
abc3 600
New A
abc1 700
abc2 200
abc3 600
abc4 400
答案 0 :(得分:0)
如何创建一个方法,将两个对象作为参数(1个类型a,其他类型b)并返回一个布尔值(匹配与否) 基于您的示例类(成员是ref和x,但只有ref是相同的匹配) 示例:
boolean match (A a , B b){
return (ref.equals(b.ref));
}
您可以遍历列表并比较As和Bs,每当方法返回true时,在修改后添加B,每当返回false时添加新的A. 希望它有所帮助