嵌套级别的Java 8流优化

Sam*_*ams 1 java java-8 java-stream

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

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

And*_*ner 8

不要用于forEach向集合添加元素.

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

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