关于使用Lambda 表达式,根据List中的对象的某个属性,求两个List的差集,
技术问答
294 人阅读
|
0 人回复
|
2023-09-11
|
一、需求逻辑:0 Y) O. J8 T1 ]1 {3 |+ w5 O
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);
/ j% x1 b' J0 F( l6 `" T E2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);, @3 ]/ f. E* f' Z- J2 A1 T( ^
3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList;
, D6 t$ F3 ] K二、问题:
( \; H8 x& {9 p使用以下代码进行取差集:. S7 \3 r8 |' F3 F: N. N" ]5 _
4 W1 _% }5 J: @0 i/ |- List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);# g7 g$ v5 _2 o# U9 f" O
- List<CarForAdmin> carForAdminList = CarDao.pageList(param);+ U9 U) q: i/ W6 q' M
- List<CarVo> newTransferList = listWithoutDuplicates.stream().filter(m -> !carForAdminList.stream().map(d -> d.getCarNum().replace(" ","")).collect(Collectors.toList()).contains(m.getCarNum().replace(" ",""))).collect(Collectors.toList());" r0 o. y* u7 q0 X) h* V/ I3 e- c6 Z5 _( J
d4 o( o: N! _& ^3 m- 运行后报错:java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
% y0 E/ t8 K* _ $ D) l% s# U1 w% C8 f0 B
+ F/ }$ K. @7 p我知道答案 回答被采纳将会获得6 金钱 已有0人回答 |
|
|
|
|
|