我有2个对象列表,每个对象中都有一个我需要与另一个列表进行比较的字符串。
当匹配时,用第二个对象的值更新第一个对象中的getter。
这是最好的方法吗?或者有没有办法在两个集合之间进行查找可能是一些guava实用程序??
for(firstObject fo : list1)
{
for (secondObject so : list2)
{
if (fo.getUserId().equals(so.getUserId()) )
{
fo.setName(so.getName());
fo.setEmail(so.getEmail());
}
}
}
答案 0 :(得分:4)
我认为list2
可以代替Map
Map<String,Object> map = new HashMap<String,Object>();
for(secondObject so : list2)
{
map.put(so.getUserId(),so);
}
然后它看起来像这样:
for(firstObject fo : list1)
{
Object so = map.get(fo.getUserId());
if(null!=so)
{
fo.setName(so.getName());
fo.setEmail(so.getEmail());
}
}