jdk1.8日常使用示例

jdk1.8日常使用示例

//1、List转Map
List<RegionVO> listVO = Lists.newArrayList();
//todo赋值
Map<String, RegionVO> resultMap = listVO.stream().collect(Collectors.toMap(RegionVO::getId, Function.identity()));

//2、List转Map,分组
List<ContractPathDTO> listPath=Lists.newArrayList();
//todo赋值
 Map<String, List<ContractPathDTO>> mapPath = listPath.stream().collect(Collectors.groupingBy(ContractPathDTO::getStartEndKey));




List<AbstractObjectInfo> abstractObjectInfos =Lists.newArrayList();
//todo赋值

Map<Long, AbstractObjectInfo> objectInfoMap = abstractObjectInfos.stream()
        .collect(StreamCollectors.toHashMap(AbstractObjectInfo::getAbstractObjectUkid, Function.identity()));

//3、List转Set
List<StorageView> storageViews = Lists.newArrayList();
//todo赋值
Set<Long> businessIds = storageViews.stream().map(StorageView::getGoodsOwnerUkid).collect(Collectors.toSet());



4、List 求和(整数)
List<SwStorageDetail> swStorageDetails = Lists.newArrayList();
//todo赋值
//商品总数
long goodsTotal = swStorageDetails.stream().mapToLong(SwStorageDetail::getGoodsAmount).sum();


//5、List 求和(整数)BigDecimal 类型数据求和,使用reduce
参考https://www.cnblogs.com/yangzhenlong/p/8378029.html
BigDecimal add = list.stream().map(User::getHeight).reduce(BigDecimal.ZERO, BigDecimal::add);



//6. 过滤出所有参数类型为入参的参数
List<GwServiceParamDTO> iNParamList = gwServiceParamDTOList.stream()
        .filter(a -> a.getParamInoutype() == IN_PARAM_TYPE).collect(Collectors.toList());

//7.Map赋值

 Map<Long, Set<ContainerDo>> contractContainerMap = new HashMap<>(16);
 for (.....) {
       Long contractUkid = ...;
       ContainerDo container = ...;
       contractContainerMap.computeIfAbsent(contractUkid, k -> new HashSet<>()).add(container);
}

//8.取最值
//取最长备注
 String remark = seTransferOrders.stream().max((o1, o2)-> {
                String name1 = Optional.ofNullable(o1.getRemark()).orElse("");
                String name2 = Optional.ofNullable(o2.getRemark()).orElse("");
                return name1.length() > name2.length() ? 1 : name1.length() == name2.length() ? 0 : -1;

            }).get().getRemark();


// 9.抛异常
Long relationUkid = Optional.ofNullable(imSubItemService.getBySubItemUkid(relationUkid)).map(ImSubItem::getItemUkid).orElseThrow(NOT_FOUND_GROUP);

// 10.过滤 
if (relations.stream().anyMatch((a) -> a.getStepFlow() < 5)) {
   ........
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值