我需要一个列表的HashMap。通常我会这样做:
val lists = mutable.HashMap[String,List[Int]]() {
override def default(key: String) = {
val newList = List[Int]()
this(key) = newList
newList
}
}
这样我就可以简单地写出像
这样的内容lists("dog") ::= 14
无需担心"狗"列表已初始化。
有更清洁的方法吗?我发现自己一次又一次地输入这五个默认覆盖线。
谢谢!
答案 0 :(得分:16)
withDefaultValue()
怎么样?
val lists = new mutable.HashMap[String,List[Int]].withDefaultValue(Nil)
lists("dog") ::= 13
lists("cat") ::= 14
lists("dog") ::= 15 //(13, 15)