关于使用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中多出的元素,并形成一个newTransferList;4 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(" ","")).collect(Collectors.toList()).contains(m.getCarNum().replace(" ",""))).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人回答 |
|
|
|
|
|