从并行流中的Java 8收集

维普尔·戈亚尔:

我要带一个输入及适用的并行流,那么我想作为列表输出。输入可以是任何列表或上,我们可以应用流的任何集合。

在这里,我担心的是,如果我们要为地图输出他们,我们有一个选项,从Java就像

list.parallelStream().collect(Collectors.toConcurrentMap(args))

但没有选择,我可以看到从并行流来收集线程安全的方式来提供列表作为输出。我看到一个更加有办法使用选项

list.parallelStream().collect(Collectors.toCollection(<Concurrent Implementation>))

这样,我们可以提供收集方法不同的并发实现。但是,我觉得只有的CopyOnWriteArrayList List实现存在于java.util.concurrent中。我们可以在这里使用不同的队列实现,但这些不会像列表。我的意思是在这里,我们可以解决方法,以获取列表。

你可以请指导我什么是最好的方式,如果我想要的输出列表?

注:我无法找到与此相关的任何其他职位,任何提及将是有益的。

安德烈亚斯:

Collection被收集用于接收所述数据对象不需要是同时的。你可以给它一个简单的ArrayList

这是因为数值从并行流集合是不实际收集到一个单一的Collection对象。每个线程将收集自己的数据,然后所有子结果将被合并成一个单一的最终Collection目标。

这是所有充分证明Collector的javadoc,并且Collector是你给的参数collect()方法:

<R,A> R collect(Collector<? super T,A,R> collector)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章