scala - 在 Scala concurrent.Map 中混合的最佳实践

标签 scala concurrency hashmap

ScalaDoc关于 concurrentMap 的说法是:“已弃用(自 2.10.0 版起)请改用 scala.collection.concurrent.Map。”不幸的是,rest of the Scala docs尚未更新,仍然引用 concurrentMap .

我试图混入concurrent.Map变成 HashMap ,结果如下:

scala> val mmap = new mutable.HashMap[String, String] with collection.concurrent.Map[String, String]
<console>:16: error: object creation impossible, since:
it has 4 unimplemented members.
/** As seen from anonymous class $anon, the missing signatures are as follows.
 *  For convenience, these are usable as stub implementations.
 */
  def putIfAbsent(k: String,v: String): Option[String] = ???
  def remove(k: String,v: String): Boolean = ???
  def replace(k: String,v: String): Option[String] = ???
  def replace(k: String,oldvalue: String,newvalue: String): Boolean = ???

       val mmap = new mutable.HashMap[String, String] with collection.concurrent.Map[String, String]

所以我们看到,除了简单的 mixin,还必须实现一些方法。这是最好的使用方式吗concurrent.Map , 或者,还有更好的方法?

最佳答案

直接取自此评论:
https://stackoverflow.com/a/49689669/7082628

在 2018 年,显然你可以这样做:

import java.util.concurrent.ConcurrentHashMap

val m: ConcurrentHashMap[String,MyClass] = new ConcurrentHashMap

关于scala - 在 Scala concurrent.Map 中混合的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660769/

相关文章:

Java:使用并行流复制文件

java - Java中的线程安全类通过同步块(synchronized block)

java - EmployeeStore 的 SearchByEmail 方法(HashMap)

Java - 将 hashmap 写入 csv 文件

java - 如何在Java应用程序中使用scala类JavaDStreamKafkaWriter?

scala - 有没有办法使用 Gradle 的 Scala 3 编译器(Dotty)?

python多进程固定

具有不同类型的 HashMap 输入变量的 Java 相同函数名?

java - 产生交互过程

scala - 如何满足 IntelliJ IDEA 对我的 scala 类的伴生对象声明进行测试的期望?