インスタンスイニシャライザを利用したMapの初期化方法をメモしておきます.
インスタンスイニシャライザという仕組みを使えば,初期化されたマップを宣言できるようです.例えば,"a","b","c"というキーに対してそれぞれ1,2,3を値とするマップを宣言する場合は,以下のようなコードとなります.
Map map = new HashMap() {{
put("a", 1);
put("b", 2);
put("c", 3);
}};
一見文法違反のように見えますが,無事コンパイルできます. HashMapを継承した匿名クラスのインスタンスイニシャライザ内で,HashMapから継承したputメソッドを呼び出しているからOKということなんでしょうか(適当に書いているので間違っているかもしれません). Javaでこんな書き方ができるなんて,知らなかった〜.
参考資料[1] イニシャライザ
[2] [Java] インスタンスイ二シャライザで初期化したMapのシリアライズで