将下面代码用Java的Stream流处理,重写 for(EngOrgProjectVo vo : orgProjectVoList){ for (PtmMaterialPriceElapsedVo priceElapsedVo : ptmMaterialPriceElapsedVoList){ if(vo.getId().equals(priceElapsedVo.getBillOrgId())) priceElapsedVo.setBillOrgName(vo.getSimpleName()); } }
时间: 2024-03-09 22:46:15 浏览: 76
假设有两个集合orgProjectVoList和ptmMaterialPriceElapsedVoList,分别存储了EngOrgProjectVo对象和PtmMaterialPriceElapsedVo对象,代码如下:
```java
List<EngOrgProjectVo> orgProjectVoList = new ArrayList<>();
List<PtmMaterialPriceElapsedVo> ptmMaterialPriceElapsedVoList = new ArrayList<>();
// 添加数据到 orgProjectVoList 和 ptmMaterialPriceElapsedVoList 中
ptmMaterialPriceElapsedVoList.stream()
.filter(priceElapsedVo -> orgProjectVoList.stream()
.anyMatch(vo -> vo.getId().equals(priceElapsedVo.getBillOrgId())))
.forEach(priceElapsedVo -> orgProjectVoList.stream()
.filter(vo -> vo.getId().equals(priceElapsedVo.getBillOrgId()))
.findFirst()
.ifPresent(vo -> priceElapsedVo.setBillOrgName(vo.getSimpleName())));
```
这段代码使用Stream流处理,首先使用filter()方法过滤出ptmMaterialPriceElapsedVoList中的元素,使得与orgProjectVoList中的元素有相同的id,然后使用forEach()方法遍历ptmMaterialPriceElapsedVoList中的元素,使用findFirst()方法查找与当前元素相同id的orgProjectVoList中的元素,并将简称设置到当前元素中的billOrgName字段中。
阅读全文