前提说明
当前有两个实体类,LinePort为航线港口中间表实体,存有到港时间,出港时间,航线id和港口id,Port为港口信息表,现在前端需要将两个查询到的实体信息list,List和List通过portId来进行对比是否相同,进行属性上的赋值。
常规想法
将两个list进行foreach循环操作,以其中的一个list为基础,进行对比。缺点就是,非常的影响系统的性能,如果有双循环是大忌。
for (LinePort linePort:linePortList){
for(Port port : portList){
if ( linePort.getPort() == port.getId() ){
//你想要的操作
}
}
}
使用List转map
集合的操作,是写项目中最为基础的操作了,而在学校中,往往是忽略的,在我大学的时候,周围人基本上都没有人会这些操作,包括老师的上课,也只有在一次筛选时候使用到了Lambda表达式,我也在那时候开始接触到,但那时候基本上是照猫画虎。
Map<Long,linePort> map = lineportList.strean().collect(Collectors.tomap(LinePort:: getPortId ,,l - >l);
portList.forEach(p->{
LinePort linePort = map.get(p.getId);
//你想要的操作
});
return linePortRespvoList;