关于使用Lambda 表达式,根据List中的对象的某个属性,求两个List的差集,
技术问答
426 人阅读
|
0 人回复
|
2023-09-11
|
一、需求逻辑:
c* O. h6 T! a3 {1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);+ ~8 q/ F' U) _+ o. G
2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);
K, N' `* D% N7 F0 ~5 p( h3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList;; B4 A% y3 d: d0 d0 w) F
二、问题:' Z+ E0 u0 r$ J2 q# {
使用以下代码进行取差集:7 n& S/ R- e9 ~8 _4 x1 ]0 \/ Y
1 I e/ Z( ^. E% B' p1 K6 {, @- List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);
% }' _ F" T, s5 } - List<CarForAdmin> carForAdminList = CarDao.pageList(param);
7 [0 S. {( N' T3 e' L, A0 H9 P& o- R) L - List<CarVo> newTransferList = listWithoutDuplicates.stream().filter(m -> !carForAdminList.stream().map(d -> d.getCarNum().replace(" ","")).collect(Collectors.toList()).contains(m.getCarNum().replace(" ",""))).collect(Collectors.toList());
; `. N2 ~; I1 j6 [ h
4 E( ]" B; A) h. }, B& N8 U$ T' V; P
- 运行后报错:java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
. Q5 ~1 @$ o! m8 h# m 7 Q/ k0 T4 ?7 t }$ y+ ]
* x( c) v' c. Q3 [( t @我知道答案 回答被采纳将会获得6 金钱 已有0人回答 |
|
|
|
|
|