Map 初期化

  • 26
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。
InitializeMapSample.java
import java.util.Map;
import java.util.HashMap;
class InitializeMapSample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>() {
            {put("foo", "fooVal");}
            {put("bar", "barVal");}
        };
        System.out.println(map.get("foo"));  
        System.out.println(map.get("bar"));  
    }
}

このコードよくわからなかったのだけど、
http://www.coderanch.com/t/386333/java/java/HashMap-Construction-initial-values
で解説されていた。
匿名クラスと初期化ブロックを使っている。
つまり、HashMap を継承したクラスを作って、初期化ブロックを定義している。
もちろん初期化ブロックをひとつにまとめてもよい。

new HashMap<String, String>() {
    {
        put("foo", "fooVal");
        put("bar", "barVal");
    }
};