2

我有 2 个对象列表,每个对象中有一个字符串,我需要与另一个列表进行比较。

并在匹配时使用来自第二个对象的值更新第一个对象中的 getter。

这是最好的方法吗?或者有没有办法在两组之间进行查找,也许是一些番石榴实用程序?

for(firstObject fo : list1)
{
    for (secondObject so : list2)
    {
        if (fo.getUserId().equals(so.getUserId()) )
        {
            fo.setName(so.getName());
            fo.setEmail(so.getEmail());
        }
    }
}
4

1 回答 1

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());  
       }  
  }
于 2013-10-18T01:12:38.147 回答