我知道我可以聲明和使用雙括號初始化List
:雙括號初始化與嵌套集合
// (1)
List<Object> myList = new ArrayList<object>(){{
add("Object1");
add("Object2");
}};
但我想一個List
<Map<Object,Object>>
的:
// (2)
List<Map<Object,Object>> myList = new ArrayList<Map<Object,Object>>();
我如何使用雙括號初始化(見(1))與嵌套集合?我的目標是在一行中聲明和初始化數據結構。
另外我想知道是否有使用雙大括號初始化我必須知道的某些缺點。
只需使用「正常」初始化代碼;雙括號初始化難以閱讀。代碼是WORM(一次寫入,多次讀取)。注意:如果這是一個靜態列表,請使用靜態初始化程序。 – fge 2015-02-09 12:58:08
你爲什麼要編寫這樣的代碼?你一個人工作嗎? – kolossus 2015-02-09 13:00:41
不要使用「雙括號」,因爲每次你這樣做時,你都會創建一個無用的ArrayList子類。 – 2015-02-09 13:00:55