回答

收藏

关于使用Lambda 表达式,根据List中的对象的某个属性,求两个List的差集,

技术问答 技术问答 156 人阅读 | 0 人回复 | 2023-09-11

一、需求逻辑:0 o. x+ K  W5 j( g- E
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);, L% N+ v! T4 A0 u$ h/ K2 B" U
2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);
0 \" p  G  a7 r0 g0 y3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList( T: V6 D0 e; l& h$ S" ~8 Q7 L# z
二、问题:, i3 J$ {+ [0 j$ O
使用以下代码进行取差集:

    * y7 z* T4 N- [* m
  • List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);
      q1 k2 x. z$ E
  • List<CarForAdmin> carForAdminList = CarDao.pageList(param);' i" H, s, I, Q6 I; @" ~/ k
  • List<CarVo> newTransferList = listWithoutDuplicates.stream().filter(m -> !carForAdminList.stream().map(d -> d.getCarNum().replace(&quot; &quot;,&quot;&quot;)).collect(Collectors.toList()).contains(m.getCarNum().replace(&quot; &quot;,&quot;&quot;))).collect(Collectors.toList());1 B. U( a8 C  K0 V! v
运行后报错:
: u& i9 b& p. `: \$ q% ~8 m8 ]java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
& r1 N  T6 S7 q' x' r, n2 i! Q

$ K5 s  G; ^, x/ s我知道答案 回答被采纳将会获得5 金钱 已有0人回答
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则