Java比较2个列表中的字符串的最佳方法

时间:2013-10-18 00:55:12

标签: java list

我有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());
        }
    }
}

1 个答案:

答案 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());  
       }  
  }