scala - 为什么 Scala Map 是自动导入的,而 HashMap 不是?

标签 scala scala-collections

如果我们使用 map 则无需导入 immutable map

scala> val map=Map[String,Int]()
map: scala.collection.immutable.Map[String,Int] = Map()

但是如果我们使用 HashMap,那么不做 import 就会报错。
scala> val a=HashMap[Int,Int]()
 <console>:7: error: not found: value HashMap
       val a=HashMap[Int,Int]()
             ^

但是做import scala.collection.immutable.HashMap,它可以工作。

我也看到它与 Set 和 Hashset..

我注意到一件事 Map 和 Set 是 trait 而 HashSet,HashMap 是类。

那为什么会这样???

编辑

scala.collection 包中也存在类 Stack 和 Queue。那为什么我们需要导入这些类。 ???

最佳答案

Program to an interface, not an implementation . Scala 设计人员通过在 Predef 中提供接口(interface)的快捷方式来鼓励这一点。

关于scala - 为什么 Scala Map 是自动导入的,而 HashMap 不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14837485/

相关文章:

java - 如何解析 postman 集合?

scala - 无法在 Scala 中使用 Apache Commons CLI Option.builder()

performance - 为什么golang比scala慢?

Scala SBT 如何同时运行测试和测试

scala - 如何在Scala中的列表中找到最大值的索引?

scala - 如何定义可以是 Array 或 List 的变量

scala - Scala + Gradle +仓库flatDir {}给了xsbti/CompileFailed错误

scala - 如何在 Scala 构造函数中使用 "static final constant"?

Scala 2.8 突破

scala - 在 Scala 中将元素移动到列表的前面