相信很多人和筆者一樣,經常會做一些數組的初始化工作,也肯定會經常用到集合類。假如我現在要初始化一個String類型的數組,可以很方便的使用如下代碼:
String [] strs = {"Tom","Jack"};
但是我相信很多人在初始化HashMap的時候是使用如下的方式:
Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "June"); map.put("age", 12);
上面這段代碼個人覺得略顯啰嗦,其實還有另外一種優雅的初始化方式:
Map<String, Object> map = new HashMap<String, Object>() { { put("name", "June"); put("age", 12); } };
這邊有必要說清楚兩個大括號表示的是啥意思,是一種什么語法呢?其實,外層的一組“{}”表示的是一個匿名類,內層的一對“{}”表示的是實例初始化塊,然后這邊還有一點需要明白,實例初始化塊的代碼在編譯器編譯過后,是放在類的構造函數里面的,並且是在原構造函數代碼的前面。