在Scala中合并大集(HashSet)

Ale*_*ros 6 collections scala scala-collections

我有两个巨大的(如数百万个条目)集合(HashSet),它们之间有一些(<10%)重叠.我需要将它们合并为一组(我不关心维护原始集合).

目前,我将一组中的所有项目添加到另一组:

setOne ++= setTwo
Run Code Online (Sandbox Code Playgroud)

这需要几分钟才能完成(在几次尝试调整成员的hashCode()之后).

任何想法如何加快速度?

Vas*_*iuk 5

使用Scala 2.9.0+中的Parallel Collections API可以获得更好的性能:

setOne.par ++ setTwo
Run Code Online (Sandbox Code Playgroud)

要么

(setOne.par /: setTwo)(_ + _)
Run Code Online (Sandbox Code Playgroud)