这个问题在这里已经有一个答案:>
Java8 Lambda: concat list1
如何使用java-streams将多个List值收集到一个列表中?
如何使用java-streams将多个List值收集到一个列表中?
List<MyListService> services; services.stream().XXX.collect(Collectors.toList()); interface MyListService { List<MyObject> getObjects(); }
因为我完全控制了这个接口:或者我应该改变方法来返回一个Array而不是一个List?
解决方法
您可以使用flatMap收集包含在MyListService实例中的列表:
List<MyObject> list = services.stream() .flatMap(s -> s.getObjects().stream()) .collect(Collectors.toList());