scala线程安全HashSet

时间:2016-12-06 10:58:15

标签: scala

使HashSet线程安全的可能方法有哪些?看到下面给出的一些样品。

var test = new mutable.HashSet[Long] with mutable.SynchronizedSet[Long]

目前不推荐使用SynchronizedSet。任何建议或样品都会非常有帮助。

1 个答案:

答案 0 :(得分:15)

正如scala.collection.mutable.SynchronizedSet的API文档所示,您可以使用android 4.4代替。

如果您希望它看起来像java.util.concurrent.ConcurrentHashMap[A, Unit]而不是Set,那么您可以使用Mapjava.util.Collections.newSetFromMap周围添加包装以使其显示比如Map

Set

然而,这将返回Java def createSet[T]() = java.util.Collections.newSetFromMap( new java.util.concurrent.ConcurrentHashMap[T, java.lang.Boolean]) 。您可以将其包装为Set

scala.collection.mutable.Set

现在,您可以使用特定类型的元素创建同步集,例如def createSet[T]() = { import scala.collection.JavaConverters._ java.util.Collections.newSetFromMap( new java.util.concurrent.ConcurrentHashMap[T, java.lang.Boolean]).asScala } ,如下所示:

Long