回答

收藏

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

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

一、需求逻辑:0 Y) O. J8 T1 ]1 {3 |+ w5 O
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);
/ j% x1 b' J0 F( l6 `" T  E2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);, @3 ]/ f. E* f' Z- J2 A1 T( ^
3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList
, D6 t$ F3 ]  K二、问题:
( \; H8 x& {9 p使用以下代码进行取差集:. S7 \3 r8 |' F3 F: N. N" ]5 _

    4 W1 _% }5 J: @0 i/ |
  • List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);# g7 g$ v5 _2 o# U9 f" O
  • List<CarForAdmin> carForAdminList = CarDao.pageList(param);+ U9 U) q: i/ W6 q' M
  • 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());" r0 o. y* u7 q0 X) h* V/ I3 e- c6 Z5 _( J

      d4 o( o: N! _& ^3 m
  • 运行后报错:java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
    % y0 E/ t8 K* _
$ D) l% s# U1 w% C8 f0 B

+ F/ }$ K. @7 p我知道答案 回答被采纳将会获得6 金钱 已有0人回答
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则