【发布时间】:2015-06-25 00:19:29
【问题描述】:
我有一个List<String> toProcess,我想进一步处理它
toProcess.parallelStream().map(/*some function*/).collect(Collectors.toList());
对于初始列表,从这种多线程中获得最佳速度的最佳列表类型(如 LinkedList、ArrayList 等)是什么?
附加信息: 预期的元素计数范围为 10^3-10^5,但单个元素可能会变得非常大(10^5-10^6 字符)。
另外,我可以在所有地方使用String[],因为字符串的数量保证不会改变(results 将包含与 toProcess 一样多的元素)。
无论哪种方式,我都必须在最后按顺序遍历所有元素。目前我使用foreach-loop 来组装最终结果。这可以很容易地更改为常规的for-loop。
【问题讨论】:
-
OT,但读起来不错:zeroturnaround.com/rebellabs/…
-
@ThomasJunk 幸运的是,我的程序的唯一目的是将方法应用于一堆字符串并将组装的输出写入文件。但无论如何,谢谢,教我小心处理 Java-8 和 WebApplications。
-
我会选择任何列表并对其进行基准测试,然后尝试其他几种列表,看看是否有什么不同。
标签: java performance list java-8 java-stream