关于使用Lambda 表达式,根据List中的对象的某个属性,求两个List的差集,
技术问答
156 人阅读
|
0 人回复
|
2023-09-11
|
一、需求逻辑:0 o. x+ K W5 j( g- E
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);, L% N+ v! T4 A0 u$ h/ K2 B" U
2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);
0 \" p G a7 r0 g0 y3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList;( T: V6 D0 e; l& h$ S" ~8 Q7 L# z
二、问题:, i3 J$ {+ [0 j$ O
使用以下代码进行取差集:
* y7 z* T4 N- [* m- List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);
q1 k2 x. z$ E - List<CarForAdmin> carForAdminList = CarDao.pageList(param);' i" H, s, I, Q6 I; @" ~/ k
- 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 B. U( a8 C K0 V! v
运行后报错:
: u& i9 b& p. `: \$ q% ~8 m8 ]java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;& r1 N T6 S7 q' x' r, n2 i! Q
$ K5 s G; ^, x/ s我知道答案 回答被采纳将会获得5 金钱 已有0人回答 |
|
|
|
|
|