TL; DR:将带有孩子的父母列表转换为使用java流API的人员列表。
让我们假设以下课程:
public abstract class Person {
private String name;
}
public class Parent extends Person {
List<Children> children;
}
public class Child extends Person {
int age;
}
以下代码会为我提供所有孩子的列表
List<Child> allChildren = parents.stream()
.flatMap(p -> p.getChildren().stream())
.collect(Collectors.toList());
我想得到包括父母在内的所有人的名单。 java 8流媒体是否可以实现这一点?
答案 0 :(得分:8)
您可以将父级添加到流using Stream::concat
:
List<Person> persons = parents.stream()
.flatMap(p -> Stream.concat(Stream.of(p), p.getChildren().stream()))
.collect(Collectors.toList());