关于使用Lambda 表达式,根据List中的对象的某个属性,求两个List的差集,
技术问答
684 人阅读
|
0 人回复
|
2023-09-11
|
一、需求逻辑:4 x* T* g" ~- v1 X# `; \& T
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);$ h T+ l- F& K. o
2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);
0 `0 m- d; i. o& \, c3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList;
5 ^" S* a, \$ q: r7 M9 m& C二、问题:7 ?$ O1 {2 U# {; b$ w5 f
使用以下代码进行取差集:+ z5 s- U+ `: k- W9 n }
- List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param);7 g8 J6 Z! ~0 u$ E1 g
- List<CarForAdmin> carForAdminList = CarDao.pageList(param);0 D$ r1 E& J U! t9 X- w; t9 |
- List<CarVo> newTransferList = listWithoutDuplicates.stream().filter(m -> !carForAdminList.stream().map(d -> d.getCarNum().replace(" ","")).collect(Collectors.toList()).contains(m.getCarNum().replace(" ",""))).collect(Collectors.toList());+ P5 `% Q, {) D+ Q
运行后报错:
* L3 E! `' o2 q M4 O4 K# ojava.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;2 _3 N3 P& t& ^9 N0 o. c
; X8 r. c. f( K( y; `+ d, ?: L我知道答案 回答被采纳将会获得5 金钱 已有0人回答 |
|
|
|
|
|