java - 使用流 API 将 arraylist 添加到 arraylist
问题描述
有一个生成 ArrayList 的方法:
List<Entity> method (String s){
........
return list;
}
如何使用流 API 从列表集合中收集列表?(类似于 newList.addAll(list);
List<String> stringList = someGenerateStrings();
List<Entity> newList = stringList.stream()
.map(this::method)
.collect(?)
解决方案
首先,您需要将列表流扁平化为列表元素流。您可以使用Stream
'sflatMap
方法:
返回一个流,其中包含将此流的每个元素替换为通过将提供的映射函数应用于每个元素而生成的映射流的内容的结果。
这基本上将元素从Stream
您创建的 inner s 中取出并放入 mainStream
中。
.flatMap(p -> method(p).stream())
然后它就像收集到一个List
.
.collect(Collectors.toList());