rav*_*aja 4 java lambda java-8 java-stream
我有一个类Division,其中包含Sectionas属性的列表,如下所示
class Division {
private List<Section> sections;
// respective getters and setters
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个部门列表,我想获得一个部门的汇总列表,我知道可以使用下面的常规方法来完成。
List<Division> divisions = getDivisions();
List<Section> sections = new ArrayList<>();
for (Division division : divisions) {
sections.addAll(division.getSections());
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有使用Java-8流进行相同操作的方法。
您可以使用flatMap运算符进行操作。这是它的外观。
List<Section> sections = divisions.stream()
.flatMap(d -> d.getSections().stream())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)