更改scala mutable.HashMap的默认容量/加载因子

时间:2012-04-08 14:34:46

标签: scala collections

我目前正在使用scala 2.9.1。 我使用:

创建一个mutable.HashMap
> val m = mutable.HashMap.empty[Int, Int]

我对scala有点新意。在java中,我能够在HashMap的构造函数中指定容量和加载因子。我无法在scala中找到任何相同的方法。

先谢谢

1 个答案:

答案 0 :(得分:5)

根据API,这似乎不可能。一种解释是强烈建议不要使用可变集合,并且不可变集合不需要默认容量信息,因为在构造时必须知道项目数。

但是,请注意,如果通过许多可用的集合方法构造集合(包括可变和不可变HashMap),Scala将隐式使用默认容量信息。例如,如果您在map上致电HashMap,则会使用map上定义的TraversableLike(转载如下),您可以看到它提供了“尺寸提示” “向提供该容量信息的构建者。

def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
  val b = bf(repr)
  b.sizeHint(this)
  for (x <- this) b += f(x)
  b.result
}