6

我需要一个列表的 HashMap。通常我这样做:

val lists = mutable.HashMap[String,List[Int]]() { 
  override def default(key: String) = {
    val newList = List[Int]()
    this(key) = newList
    newList
  }
}

这样我就可以简单地写下类似的东西

lists("dog") ::= 14

不必担心“狗”列表是否已经初始化。

有没有更清洁的方法来做到这一点?我发现自己一次又一次地输入这五个默认覆盖行。

谢谢!

4

1 回答 1

16

怎么样withDefaultValue()

val lists = new mutable.HashMap[String,List[Int]].withDefaultValue(Nil)

lists("dog") ::= 13
lists("cat") ::= 14
lists("dog") ::= 15  //(13, 15)

也可以看看

于 2013-01-08T19:14:34.133 回答