Java8中stream流和lambda表达式实际使用合集

本文详细介绍了如何在Java8中使用Stream流和Lambda表达式处理List<Bean>的各种操作,包括转换为数组、List、判断属性值、Optional获取、Map构建、分组以及字符串拼接,展示了其在数据处理中的灵活性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java8中stream流和lambda表达式实际使用合集

stream

将 List<Bean> 中的某一个属性转为String[]

  String[] orderArray = waitBillOrderList.stream().map(OrderRecord::getOrderNo).toArray(String[]::new);

将List<Bean> 中的某一个属性转为List<String>

  List<String> mainUrl = CollUtil.emptyIfNull(productPicDTOList).stream().map(ProductPicDTO::getFullUrl)
  .collect(Collectors.toList());

判断List<Bean> 中的某一个属性是否存在指定的值

boolean returnStateFlag = returnList.stream().anyMatch(m -> m.getState().equals("1"));       

从List<Bean> 中找到第一个与指定值相等的元素,并返回一个Optional对象。如果找到相等的元素,则Optional中包含该元素,否则Optional为空

  Optional<DockingBillInfo> detailOptional = list.stream()
            .filter(item -> item.getMyOrderNo().equals(orderId)).findFirst();

把List<Bean> 中的某一个属性作为key,Bean作为value,将List<Bean>转为 Map<String, Bean>

      Map<String, DockingOrderAllInfo> initialDockingOrderMap = initialDockingOrderAllInfoList.stream()
          .collect(Collectors.toMap(DockingOrderAllInfo::getOrderNo, Function.identity()));

把List<Bean> 中的某一个属性a作为key进行分组,把属性a相同的数据放入一个list中做为value,将List<Bean>转为
Map<String, List<Bean>>

      Map<String, List<DockingOrderAllInfo>> orderMap = checkReturnDockingOrderAllInfoList.stream()
          .collect(Collectors.groupingBy(DockingOrderAllInfo::getSupplierName));

把List<Bean>中的每个元素的某个属性拼接成一个以逗号分隔的字符串

   String orderStr = submitBalanceParamList.stream()
            .map(SubmitBalanceParam::getOrderno).collect(Collectors.joining(","));

lambda

list移除符合条件的元素

list.removeIf(a -> "1".equal(a));

待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值