回答

收藏

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

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

一、需求逻辑:
- ~4 C& O: E2 ^9 n" y1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);
+ C* j- W$ f6 p9 |6 v: t2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);
; s- E. k, `5 n2 u# k' d& R0 U3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList
* E9 V9 @) {$ H$ K二、问题:
4 j& l/ v8 L2 @: W使用以下代码进行取差集:- a5 `/ M+ ~' Z6 b

    # C6 A6 H. p* h2 p9 r5 O6 n. Y
  • List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);9 s1 D. |  f; L6 v, V" p" W
  • List<CarForAdmin> carForAdminList = CarDao.pageList(param);, K  ^; w' d5 d: {3 ?
  • 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());
    ' j/ ?& A/ s& S: }
      C4 L! t( \3 I  A
  • 运行后报错:java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;7 W: d$ S5 \, Z# {2 `4 ]

* P# y9 ], C6 n7 N
" T6 u8 y$ v9 Z7 I2 [4 }
我知道答案 回答被采纳将会获得6 金钱 已有0人回答
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则