关于使用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(" ","")).collect(Collectors.toList()).contains(m.getCarNum().replace(" ",""))).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人回答 |
|
|
|
|
|