JAVA两个List<实体>实体类集合合并(实体类间 有一列值互相对应)
//json串转化为list<实体>
List<WayAssetsVo> wayAssetsVoList = JSONObject.parseArray(dataResult, WayAssetsVo.class);
//java8从已知集合获取集合
List<String> ageList = assetsData.stream().map(ReturnAssetsPO::getAssetsclass).distinct().collect(Collectors.toList());
//java8从已知集合获取集合
List<AssetAllocationVo> stationDictVOS = assetsData.stream().map(ReturnAssetsPO -> {
AssetAllocationVo assetAllocationVo = new AssetAllocationVo();
assetAllocationVo.setCategory(ReturnAssetsPO.getAssetsclass());
return assetAllocationVo;
}).distinct().collect(Collectors.toList());
//合并集合assetConfigVo wayAssetsVoList 创建新集合assetsMergedVos 把第一个合并集合assetConfigVo放入新集合assetsMergedVos
List<AssetsMergedVo> assetsMergedVos = new ArrayList<>();
if (CollectionUtil.isNotEmpty(ConfigList)) {
assetsMergedVos = ConfigList.stream().map(assetConfigVo -> {
AssetsMergedVo assetsMergedVo = new AssetsMergedVo();
assetsMergedVo.setA(assetConfigVo.getCategory());
assetsMergedVo.setB(assetConfigVo.getInvqty());
assetsMergedVo.setC(assetConfigVo.getConfigqty());
return assetsMergedVo;
}).collect(Collectors.toList());
}
//List循环遍历 把第二个List<实体>放入新的List<实体>
int count = 0;
for (int i = 0; i < assetsMergedVos.size(); i++) {
for (int j = 0; j < wayAssetsVoList.size(); j++) {
if (assetsMergedVos.get(i).getA().equals(wayAssetsVoList.get(j).getAssetsTypeCode())) {
assetsMergedVos.get(i).setD(wayAssetsVoList.get(j).getNum());
count = Integer.parseInt(assetsMergedVos.get(i).getC()) - Integer.parseInt(assetsMergedVos.get(i).getB()) - Integer.parseInt(wayAssetsVoList.get(j).getNum());
assetsMergedVos.get(i).setRes(String.valueOf(count));
}
}
}