List<QueryRetTreatyVo> queryRetTreatyVos = baseMapper.selectRetTreatyPageList(page, queryWrapper); List<QueryRetTreatyVo> queryRetTreatyVos1 = baseMapper.selectTotalMountAndTotalNper(); Map<Long, QueryRetTreatyVo> map = new LinkedHashMap<>(); //将查询结果转换为 Map,使用 Map.merge() 处理重复键的情况,相当于put,但是有处理重复键的情况 queryRetTreatyVos.parallelStream().forEach(queryRetTreatyVo -> map.merge(queryRetTreatyVo.getId(), queryRetTreatyVo, (oldValue, newValue) -> newValue)); // 处理已缴付金额问题 queryRetTreatyVos1.parallelStream().forEach(e -> map.computeIfPresent(e.getId(), (id, queryRetTreatyVo) -> { queryRetTreatyVo.setTotalMount(e.getTotalMount()); queryRetTreatyVo.setTotalNper(e.getTotalNper()); return queryRetTreatyVo; }));
时间: 2024-04-14 08:31:38 浏览: 84
List<Long>转一维数组 Long[](csdn)————程序.pdf
5星 · 资源好评率100%
这段代码的作用是查询保单信息并将结果转换为一个Map对象。首先,使用`baseMapper.selectRetTreatyPageList(page, queryWrapper)`方法查询保单信息,得到一个`List<QueryRetTreatyVo>`对象,保存在`queryRetTreatyVos`中。然后,使用`baseMapper.selectTotalMountAndTotalNper()`方法查询已缴付金额信息,得到一个`List<QueryRetTreatyVo>`对象,保存在`queryRetTreatyVos1`中。
接下来,创建一个`LinkedHashMap<Long, QueryRetTreatyVo>`对象`map`,用于保存转换后的结果。使用并行流(`parallelStream()`)遍历`queryRetTreatyVos`列表,并使用`map.merge()`方法将查询结果转换为Map,并处理重复键的情况。
然后,再次使用并行流遍历`queryRetTreatyVos1`列表,并使用`map.computeIfPresent()`方法处理已缴付金额问题。如果在`map`中存在对应的键值,则更新该键值对应的`QueryRetTreatyVo`对象的已缴付金额和总期数,并返回更新后的对象。
最终,经过以上处理,得到的`map`对象即为转换后的结果。
阅读全文