首页 > 解决方案 > 嵌套级别的 Java 8 流优化

问题描述

我们如何使用优化此流来收集集合的嵌套级别和根级别。

final Set<String> groupedUsers = new HashSet<>();
groups.stream().forEach(group -> {
    groupedUsers.add(group.getTeamLeadId());
    groupedUsers.addAll(group.getTeamMemberIds().stream().collect(Collectors.toSet()));
});

标签: javajava-8java-stream

解决方案


不要forEach用于将元素添加到集合中。

Set<String> groupedUsers = groups.stream()
    .flatMap(g -> Stream.concat(
        Stream.of(g.getTeamLeadId()), g.getTeamMemberIds().stream()))
    .collect(toSet());

或者只是使用普通的旧(增强型)for 循环。流在这里没有给你任何明显的优势。


推荐阅读