常用stream流操作

1 篇文章 0 订阅

stream流操作笔记

stream的groupingBy函数

listMap = StreamUtil.streamOf(list).collect(Collectors.groupingBy(DirSegmentRuleInfoVO::getCheckDlCode));

filter函数

DirMainCaseInfoVO creditVO = dirMainCaseList.stream().filter(d -> LoadTypeEnum.CREDIT.getKey().equals(d.getLoadFlag())).findFirst().orElse(new DirMainCaseInfoVO());

JSONObject endUserColumn = (JSONObject) StreamUtil.streamOf(attributeArray).filter(o -> attributeName.equals(((JSONObject) o).getString(END_USER_COLUMN_NAME)
)).findFirst().orElse(new JSONObject());

map reduce函数

BigDecimal freeAmount = value.stream().map(DivDetailVO::getFreeAmount).reduce(BigDecimal.ZERO, BigDecimal::add);

从对象中提取字段转换为集合

existList = StreamUtil.streamOf(segmentOrgList).map(e -> e.getSegment1()).collect(Collectors.toList());
String billTypeId = Optional.ofNullable(billObj.getString(“billTypeId”))
.filter(StringUtils::isNotBlank).orElseThrow(() -> new BusinessServiceException(“单据类型不能为空”));

使用流的方式初始化集合

List expensing = Stream.of(“02”,“10”,“11”,“20”,“21”,“22”,“30”,“31”,“32”,
“40”,“52”,“51”,“54”).collect(toList());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用Stream操作有以下几种: 1. 创建Stream:可以通过调用集合的`stream()`方法来获取一个Stream。例如,对于任意的Collection集合,都可以使用`stream()`方法获取对应的Stream。 2. 遍历集合:使用`forEach()`方法可以对Stream进行遍历操作。例如,`stream.forEach(System.out::println)`可以打印出Stream中的每一个元素。 3. 映射:使用`map()`方法可以将一个Stream中的元素根据某个函数进行映射转换。例如,`stream.map(x -> x * x)`可以将Stream中的每一个元素平方。 4. 过滤:使用`filter()`方法可以根据某个条件对Stream中的元素进行过滤。例如,`stream.filter(x -> x > 0)`可以筛选出Stream中大于0的元素。 5. 分组:使用`groupingBy()`方法可以将Stream中的元素按照某个条件进行分组。例如,`stream.collect(Collectors.groupingBy(User::getAge))`可以将Stream中的元素按照年龄进行分组。 6. 求和:使用`sum()`方法可以对Stream中的元素进行求和操作。例如,`stream.mapToInt(User::getHeight).sum()`可以求出Stream中所有用户身高的总和。 7. 做判断:使用`anyMatch()`、`allMatch()`、`noneMatch()`方法可以对Stream中的元素进行判断操作。例如,`stream.anyMatch(x -> x > 10)`可以判断Stream中是否存在大于10的元素。 8. 合并List:可以使用`flatMap()`方法将多个Stream合并成一个Stream。例如,`Stream.concat(list1.stream(), list2.stream())`可以将两个List合并成一个Stream。 9. 分页:可以使用`skip()`和`limit()`方法实现分页功能。例如,`stream.skip(10).limit(10)`可以跳过前10个元素,然后取出后面的10个元素。 10. 排序:使用`sorted()`方法可以对Stream中的元素进行排序操作。例如,`stream.sorted()`可以对Stream中的元素按照默认顺序进行排序。 这些是常见的Stream操作,通过组合这些操作可以实现丰富的数据处理和转换功能。请根据具体的需求选择和组合这些操作来使用Stream

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值