【发布时间】:2018-12-22 03:57:14
【问题描述】:
有一个特定的用例,但不太确定最佳方法。
所以目前的方法是我正在迭代对象集合(可关闭的迭代器)并将它们映射到哈希图中(适当地处理冲突,通过对象的日期属性进行比较)。
我正在寻找一种并行方法来加快速度,最初的想法是使用 Java 8 流和并行和 forEach,利用并发哈希图来启用并发。这种方法的主要瓶颈似乎是并发 hashmap,并且这种方法在增加并发性方面没有任何改进。
我现在的想法是映射到多个并行的哈希映射。然后 reduce 成一个单独的 hashmap 来适当地处理冲突。想知道如何使用 Streams 在 Java 中实现这种方法。我知道有内置的 map 和 reduce 操作,但不确定收集多个 hashmap 的方法(执行操作并添加到集合中?)。
【问题讨论】:
-
对于另一种方法,想法是并行映射到多个哈希图。然后缩减为一个单独的哈希图来适当地处理冲突。这正是
Collectors.toMap()将立即执行的操作。 -
抱歉,这不是 StackOverflow 的工作方式。正如tour 中所述,此站点是有用问题及其答案的存储库,不是帮助论坛,也不是讨论论坛。所述问题过于宽泛,并且正在征求意见/讨论,这是题外话。有很多编程论坛可以讨论这方面的问题,但不幸的是,SO 不是合适的地方。
-
"对于另一种方法,想法是并行映射到多个 hashmap。然后减少到一个单独的 hashmap 以适当地处理冲突。想知道我将如何在 Java 中使用 Streams 实现这种方法"跨度>
-
这是我的具体问题。我只是为其他人添加了选项,如果他们愿意,他们可以提出想法。更改了问题以使其更清楚。
标签: java multithreading java-8 mapreduce concurrenthashmap