【发布时间】:2017-05-20 08:07:41
【问题描述】:
我想接受一个输入并在其上应用并行流,然后我想输出为列表。输入可以是我们可以应用流的任何列表或任何集合。
我担心的是,如果我们想要输出作为映射它们,我们有一个来自 java 的选项,就像
list.parallelStream().collect(Collectors.toConcurrentMap(args))
但是我看不到以线程安全的方式从并行流中收集以提供列表作为输出的选项。 我在那里看到了另一个使用选项
list.parallelStream().collect(Collectors.toCollection(<Concurrent Implementation>))
这样我们就可以在collect方法中提供各种并发实现。但我认为 java.util.concurrent 中只有 CopyOnWriteArrayList List 实现。我们可以在这里使用各种队列实现,但不会像列表那样。我的意思是我们可以通过变通方法来获取列表。
如果我希望输出为列表,您能否指导我最好的方法是什么?
注意:我找不到与此相关的任何其他帖子,任何参考都会有所帮助。
【问题讨论】:
-
你不能给它一个
Collections.synchronizedList(new ArrayList<>())吗? -
@OleV.V.没必要。集合对象不需要是线程安全的。
标签: java java-8 java-stream java.util.concurrent