stream().filter(e-> StringUtils.hasText(e.getFgLeaderUserId())).collect(Collectors.groupingBy(e->e.getFgLeaderUserId()));
时间: 2024-04-22 10:25:25 浏览: 26
这个代码片段使用了Java 8的流式操作对一个集合进行过滤和分组。具体来说,它通过 `filter` 方法筛选出具有非空 `fgLeaderUserId` 属性的元素,并使用 `collect` 方法将结果按照 `fgLeaderUserId` 属性进行分组。最终返回一个以 `fgLeaderUserId` 作为键,分组后元素列表作为值的 `Map` 对象。
相关问题
List<String> list= new ArrayList<>(); List<String> leaderId = departs.stream().filter(depart -> StringUtils.isNotBlank(depart.getFdLeaderId())).map(Depart::getFdLeaderId).collect(Collectors.toList()); List<String> etxLeaderId = departs.stream().filter(depart -> StringUtils.isNotBlank(depart.getFdLeaderExtId())).map(Depart::getFdLeaderExtId).collect(Collectors.toList()); list = account.stream().filter(departAccountVo -> StringUtils.isNotBlank(departAccountVo.getFdAccountId())).map(DepartAccountVo::getFdAccountId).collect(Collectors.toList()); list.addAll(leaderId); list.addAll(etxLeaderId); list = list.stream().distinct().collect(Collectors.toList()); 优化这段代码
可以使用链式调用的方式,避免重复的流操作,同时也可以在收集器中使用toSet()方法来去重。优化后的代码如下:
```
List<String> list = departs.stream()
.flatMap(depart -> Stream.of(depart.getFdLeaderId(), depart.getFdLeaderExtId()))
.filter(StringUtils::isNotBlank)
.distinct()
.collect(Collectors.toList());
list.addAll(account.stream()
.map(DepartAccountVo::getFdAccountId)
.filter(StringUtils::isNotBlank)
.collect(Collectors.toList()));
```
detectTemplateList = sampleTemplateList.stream().filter(taskManagementSampleTemplate -> StringUtils.isNotBlank(taskManagementSampleTemplate.getDetectItem())).collect(Collectors.toList());
这是一段Java代码,使用了Java 8的Stream API。它的作用是从一个名为sampleTemplateList的列表中筛选出那些检测项目(detectItem)不为空的样本模板(taskManagementSampleTemplate),并将它们收集到一个新的列表中。其中StringUtils.isNotBlank是Apache Commons Lang工具包中的一个方法,用于判断一个字符串是否为空或空格字符。而Collectors.toList()则是一个静态方法,用于将Stream中的元素收集到一个List中。