为什么Scala Map是自动导入的,但HashMap不是?

Ris*_*shi 5 scala scala-collections

如果我们使用map,则无需导入不可变映射

scala> val map=Map[String,Int]()
map: scala.collection.immutable.Map[String,Int] = Map()
Run Code Online (Sandbox Code Playgroud)

但是如果我们使用HashMap,那么不进行导入就会产生错误.

scala> val a=HashMap[Int,Int]()
 <console>:7: error: not found: value HashMap
       val a=HashMap[Int,Int]()
             ^
Run Code Online (Sandbox Code Playgroud)

但是做导入scala.collection.immutable.HashMap,它的工作原理.

我也用Set和Hashset看到它..

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

那么为什么会这样呢???

编辑

scala.collection包中也存在类堆栈和队列.那么为什么我们需要导入这些类.???

om-*_*nom 14

编程到接口,而不是实现.Scala设计者通过提供Predef中接口的快捷方式来鼓励这一点.