2013-01-08 3 views
6

私はリストのHashMapが必要です。私は、単に「犬」のリストがまだ初期化されているかどうかを気にすることなくリストのスカラHashMap:より単純なデフォルト?

lists("dog") ::= 14 

のようなものを書くことができるように

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

:通常、私がこれを行います。

これを行うクリーナー方法はありますか?私は自分自身がこれらの5つのデフォルトのオーバーライド行を何回も入力していることを知っています。

ありがとうございます!

答えて

15

withDefaultValue()

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

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

も参照してください

+3

素晴らしいです!ちょうどチケット。これが私がstackoverflowが好きな理由です。 –

関連する問題