I was just searching for better way to handle this scenario using java 8 streams. Object A has list of object b. What I get is a list of object A (List). I need to stream through list of object A and get all the listB's in each of the object A as a one single list.
class A {
List listB
}
I have tried the below way it throws compilation
List as = someObject.getAs();
List listofBs = as.stream().map(in -> in.getListB()).collect(Collectors.toList());
解决方案
To get a single list of all B's, you should use flatMap as:
List listOfBs = listOfAs.stream()
.flatMap(a -> a.getListB().stream())
.collect(Collectors.toList());