使用流API将arraylist添加到arraylist

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用流API将arraylist添加到arraylist相关的知识,希望对你有一定的参考价值。

有一个生成ArrayList的方法:

List<Entity> method (String s){
    ........
    return list;
} 

如何使用流API从List集合中收集List? (类似于newList.addAll(list);

List<String> stringList = someGenerateStrings();

List<Entity> newList = stringList.stream()
    .map(this::method)
    .collect(?)
答案

首先,您需要将列表流展平为列表元素流。你可以使用Stream's flatMap method

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

这基本上将你创造的内部Streams中的元素带入主要的Stream

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

然后它就像收集到List一样简单。

.collect(Collectors.toList());

以上是关于使用流API将arraylist添加到arraylist的主要内容,如果未能解决你的问题,请参考以下文章

纯并行添加的Java ArrayList.add() 方法线程安全吗? [复制]

java用poi往excel里写数据遇到换行问题

ArrayList的使用

Java流:收集嵌套集合

使用 If 条件遍历 ArrayList 并使用流 api 返回布尔标志 [重复]

面试必问之ArrayList