首页 > 解决方案 > 使用流 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(?)

标签: javacollectionsstream

解决方案


首先,您需要将列表流扁平化为列表元素流。您可以使用Stream'sflatMap方法

返回一个流,其中包含将此流的每个元素替换为通过将提供的映射函数应用于每个元素而生成的映射流的内容的结果。

这基本上将元素从Stream您创建的 inner s 中取出并放入 mainStream中。

.flatMap(p -> method(p).stream())

然后它就像收集到一个List.

.collect(Collectors.toList());

推荐阅读