1 list map复杂转化代码段。
//查询出simpleProduct结果集
// List productSimpleList = productDao.getProductListByKeyWordsAndOrgIdRangeKeys(queryParam);
// //最终目标结果list
// List productRpcDTOList=new ArrayList<>();
// //获取所有的skuID
// List skuIdList=productSimpleList.stream().map(OrgProductSimpleDTO::getSkuId).distinct().collect(Collectors.toList());
// //将结果集转化为key为skuId的value为simpleProduct的map
// Map resultMap=productSimpleList.stream().collect(Collectors.toMap(OrgProductSimpleDTO::getSkuId,orgProductSimpleDTO -> orgProductSimpleDTO));
// skuIdList.stream().forEach(s -> {
// OrgProductRpcDTO dto=new OrgProductRpcDTO();
// BeanUtils.copyProperties(resultMap.get(s),dto);
// //根据skuID获取筛选满足条件的OrgProductSimpleDTO 列表
// List middleList=productSimpleList.stream().filter(orgProductSimpleDTO ->orgProductSimpleDTO.getSkuId().equals(s) ).collect(Collectors.toList());
// dto.setOrgIdList(middleList.stream().map(OrgProductSimpleDTO::getOrgId).distinct().collect(Collectors.toList()));
// productRpcDTOList.add(dto);
// });
2 从List<对象>转化为list<属性>
List skuIdList=checkDictSuccessList.stream().map(ShopRetailAdjustValidDTO::getSkuId).collect(Collectors.toList());
3 list<对象> 转化为map<属性,属性>
Map prizeMapprizeMap=prizeDtoList.stream().collect(Collectors.toMap(ProductDTO::getSkuId,ProductDTO::getRetailPrice));
4 对list对象根据某一属性进行合并操作,并对合并的对象的某一属性进行四则运算
List<SkuQuery> skus =new ArrayList<>();
skus.addAll(promotionalPriceQuery.getSkus());
List newSkus =new ArrayList<>();
skus.stream().collect(Collectors.groupingBy(SkuQuery::getSkuId)).forEach((k, v) -> {
Optional<SkuQuery> sum = v.stream().reduce((v1, v2) -> {
v1.setSkuCount(v1.getSkuCount() + v2.getSkuCount());
return v1;
});
if (sum.isPresent()) {
newSkus.add(sum.get());
}
});
5 list<对象>转化为Map<对象属性,对象>代码段
List<PromotionalSkuDTO> skuList=new ArrayList();
Map productMap = skuList.stream().collect(Collectors.toMap(PromotionalSkuDTO::getSkuId, a -> a, (k1, k2) -> k1));
6 list<对象> 根据对象里面的某个属性进行排序
holdVOS=holdVOS.stream().sorted((vo1,vo2)->vo2.getHoldTime().compareTo(vo1.getHoldTime())).collect(Collectors.toList());
7 list<值处理>
List list=new ArrayList<>();
list.add(1);
list.add(1);
Optional sum = list.stream().reduce((v1, v2) -> {
return v1+v2;
});
if(sum.isPresent()){
System.out.println("合并后的值:"+sum); }