回答

收藏

关于使用Lambda 表达式,根据List中的对象的某个属性,求两个List的差集,结果报异常

Java技术问答 Java技术问答 58 人阅读 | 0 人回复 | 2022-01-09

一、需求逻辑:0 {6 s% _& K" N6 {) q  f
1.先取出所有的车辆信息listWithoutDuplicates,并去重(该List数据最全,元素均为CarVo);
. |6 Q  z4 m- [4 M2.再从另一个表中取出车辆信息carForAdminList;(数据较少,元素均为CarForAdmin);* A7 Z" B3 x( [, J5 [  m
3.根据carForAdminList中的CarForAdmin车牌号是否存在于listWithoutDuplicates中为条件(即CarForAdmin.车牌号等于CarVo.车牌号),得出listWithoutDuplicates中多出的元素,并形成一个newTransferList/ V' Z* Q4 J; ]) R
二、问题:
! r( }. p$ K, M: R$ j使用以下代码进行取差集:
6 [( r, t9 }2 {- ?1 J; z( l
  1. List<CarVo> listWithoutDuplicates = CarDao.pageVoList(param); 3 R5 n. |& B: Y% P& h
  2. List<CarForAdmin> carForAdminList = CarDao.pageList(param);
  3. 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. 运行后报错: 2 V6 b' e3 Z8 b4 k% U
  2. java.lang.ClassCastException: java.util.HashMap cannot be cast to CarForAdmin;
复制代码

) K0 ~6 m: ~9 @* j

2 x7 S* A5 H. ?- z; [$ h3 |! D6 j4 A
我知道答案 回答被采纳将会获得6 金钱 已有0人回答
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则