回答

收藏

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

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

一、需求逻辑:1 j' G9 O9 p0 i& O2 H
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);
8 F& q# t% y" q2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);
. k% `1 O* l, H  m# W' z. n0 q3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList4 m/ L# t( o6 N9 [2 a, V( `) V
二、问题:, `/ o6 H' `. A5 O9 H' l% M( d" T
使用以下代码进行取差集:

    ! b; j. Q# K2 {' d1 H( u
  • List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);
    0 }3 _7 J0 E# P+ g8 t# h8 _
  • List<CarForAdmin> carForAdminList = CarDao.pageList(param);3 Z8 N" Q3 I# P) K5 N
  • 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 f' X& @* k
运行后报错:  e  J* r- r: F" c' g
java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
" S- ?' M! k+ ^
1 X. N  D, R& ?
我知道答案 回答被采纳将会获得5 金钱 已有0人回答
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则