回答

收藏

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

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

一、需求逻辑:
) D. J0 a9 U* t5 z- M" l$ Z1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);
  K' l, S& z8 G; q! y& T+ z2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);
  Y' T: M3 C6 Y4 j7 y/ b3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList) `! O9 T+ w  E) e( I
二、问题:
& S) d; k* F0 C- E- B8 a4 v使用以下代码进行取差集:

    ; ]$ E5 H) p5 G) L2 l
  • List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);
    + y4 B% a6 ~: B% x1 m$ H
  • List<CarForAdmin> carForAdminList = CarDao.pageList(param);2 m9 u7 c1 z9 L1 d
  • 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());6 S& |. X$ N4 H
运行后报错:5 g9 v6 B# C8 C
java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
- c* R/ A; I' A7 ~) Z
% J, o0 l) ~" B4 R0 o, L
我知道答案 回答被采纳将会获得5 金钱 已有0人回答
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则