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

「犬」リストがまだ初期化されているかどうかを心配する必要はありません。

これを行うためのよりクリーンな方法はありますか?これらの5つのデフォルトのオーバーライド行を何度も入力していることに気づきました。

ありがとう!

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 に答える