【发布时间】:2019-03-13 09:24:55
【问题描述】:
我目前有一个 java 程序,它使用嵌套的 for 循环来计算一组整数列表的并集和交集。如何使用 java parallel 流来做到这一点?我目前的代码如下
for(Set<Integer> x : listA) {
for (Set<Integer> y : listB) {
Set u = Sets.union(x,y); // Uses Guava library
Set i = Sets.intersection(x,y);
}
}
我想加快速度,因为 listA 和 listB 很大。
【问题讨论】:
-
由于您没有对结果做任何事情,因此仅删除整个代码是最快的解决方案。否则,您应该包含应该并行运行的实际操作。
-
@Holger 不可能使联合操作本身并行吗?
-
性能没有显着提升。并行执行
union或intersection时,性能很可能会变差。正如您自己所说,listA和listB很大,因此您应该专注于并行处理这些列表。 -
并行化并不容易。也许这种方法已经足够好了:stackoverflow.com/questions/7574311/…
-
@Holger 谢谢你的评论
标签: java java-8 set java-stream