У меня есть несколько классов, как показано ниже:
Class A {
private String name;
private List<B> b;
// getters and setters
}
Class B {
private String name;
private List<C> c;
// getters and setters
}
Class C {
private String name;
private List<D> d;
// getters and setters
}
Class D {
// properties
// getters and setters
}
Теперь у меня есть список типа A
.Что я хочу сделать, это получить список, содержащий другие списки типа D
, например:
List<List<D>>
Я пытался что-то подобное, используя flatMap
:
listA.stream()
.flatMap(s -> s.getB.stream())
.flatMap(s -> s.getC.stream())
.flatMap(s -> s.getD.stream())
.collect(Collectors.toList());
Но это собирает все элементы типа D
в список:
List<D>
Может кто-нибудь помочь, пожалуйста?