Scala中的Map
和HashMap
有区别吗?我正在使用scala.collection.immutable.HashMap
。
Scala中的Map
和HashMap
有区别吗?我正在使用scala.collection.immutable.HashMap
。
scala.collection.immutable.Map
是不可变映射的接口,而scala.collection.immutable.HashMap
是一个具体的实现。
使用Map()
或Map.empty
创建将会得到一个特殊的空单例映射,如果使用Map(a -> b)
并且包含不超过4个键值对,将会产生专门设计用于小型映射的类,而5个及以上则会使用scala.collection.immutable.HashMap
。
scala.collection.Map.{empty, apply}
只是将对应的工厂方法委托给不可变 Map
伴生对象。请注意,如果您在方法签名中明确使用 scala.collection.Map
,例如,它将接受可变映射以及不可变映射。由 Predef 自动导入的 Map
是 immutable.Map
。 - johanandren
HashMap
是Map
的一种实现方式。从它们的定义中可以看出,HashMap
是一个类,而Map
则是一个特质(trait)。 - Peter NeyensMap
包含5个或更多元素时,HashMap
是其默认实现。 - Peter Neyens