回答

收藏

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

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

一、需求逻辑:+ G! x! G$ C# z  u% v5 s( `
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);1 _0 t: l" j4 J2 K4 [% @  Y9 v
2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);% \4 u2 E( P. ]8 m! J5 _0 _1 U
3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList  n/ h. e+ h1 L. I2 l
二、问题:5 s& Q: w) q( T' N' Y! P9 m
使用以下代码进行取差集:' \3 o4 o, R/ s* G0 _$ r' s" E
    9 B$ D) f# \( T5 l; D
  • List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);
    + ]& E( I% P7 t- e  N( V4 u* R
  • List<CarForAdmin> carForAdminList = CarDao.pageList(param);5 Q3 d6 T# I( j) d7 w
  • 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());# {, I. v7 {  s  H  S  |% a

    , j- b$ R% p0 P" D$ s9 p( E4 m
  • 运行后报错:java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
    % \* S; T, d2 v' b! W# `# }( I5 Q

4 E4 Z$ w4 r' e# y) b: \

# [/ }: i; H. c4 _; ^- A0 q7 F我知道答案 回答被采纳将会获得6 金钱 已有0人回答
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则