根据List<String>的值 取出List<Entity>的值

List _first=new ArrayList();
SiteHomePage siteHomePage1 = new SiteHomePage();
siteHomePage1.setSiteId("2262");
siteHomePage1.setCityName("chengshiyi");
SiteHomePage siteHomePage2 = new SiteHomePage();
siteHomePage2.setSiteId("2263");
siteHomePage2.setCityName("chengshiyi2");
SiteHomePage siteHomePage3 = new SiteHomePage();
siteHomePage3.setSiteId("2264");
siteHomePage3.setCityName("chengshiyi4");
_first.add(siteHomePage1);
_first.add(siteHomePage2);
_first.add(siteHomePage3);

List _second=new ArrayList();
_second.add("2262");
_second.add("2263");

想要 _first 的SiteId 和 _second 相等的
_first 的值 不要for循环 想要一个简单高效的方法 for循环数据大执行慢

重写SiteHomePage的equals和hashcode方法

cmap或者map映射数据结构

循环是免不了的,但是还有优化空间:
1._second转化成set,这样查询SiteId是否在其中更快
2.使用并发流,_first.parallelStream().filter(e->_second.contains(e.getSiteId())).collect(toList)

for循环也是看你咋循环的 _first 换成 map形式

Map _first=new HashMap();
_first.put("2262","chengshiyi");
_first.put("2263","chengshiyi2");
_first.put("2264","chengshiyi4");
List _second=new ArrayList();
_second.add("2262");
_second.add("2263");

    Map<String,String> result=new HashMap<String,String>();
    String ss ="";
    for(Object secondId:_second){
        ss = _first.get(secondId);
        if(null != ss){
            result.put((String) secondId,ss);
        }
    }

    return result;

改成map,通过key-value的形式存储,之后再通过getkey获取

java8的stram 對效能有增加