常用stream流操作

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

猜你喜欢

转载自blog.csdn.net/hbn1326317071/article/details/92770737