美文网首页
工作Stream类使用记录

工作Stream类使用记录

作者: 北方_f6b4 | 来源:发表于2019-12-10 16:18 被阅读0次

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);  }

相关文章

网友评论

      本文标题:工作Stream类使用记录

      本文链接:https://www.haomeiwen.com/subject/vnwmwctx.html