两个不同对象的list要取交集(list转map的应用)

前提说明

当前有两个实体类,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;
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值