2 回答

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果您愿意使用第三方庫,這應(yīng)該適用于Eclipse Collections:
public?static?final?List<Map<String,?String>>?LIST_GROUP_MAP?=? ????Lists.mutable.withNValues(SIZE_LIST_GROUP_MAP,?HashMap::new);
考慮到您要在靜態(tài)變量中存儲(chǔ)List
包含可變的可變變量,您可能需要考慮使用同步與同步或s 來代替。以下代碼將為您提供一個(gè)包含一組固定實(shí)例的同步。Maps
List
ConcurrentMap
List
ConcurrentMap
public?static?final?List<Map<String,?String>>?LIST_GROUP_MAP?=? ????Lists.mutable.<Map<String,?String>>withNValues( ????????????SIZE_LIST_GROUP_MAP, ????????????ConcurrentHashMap::new).asSynchronized()
Eclipse Collections 還支持MultiReaderList
s。
public?static?final?List<Map<String,?String>>?LIST_GROUP_MAP?=? ????Lists.multiReader.withNValues(SIZE_LIST_GROUP_MAP,?ConcurrentHashMap::new)
最后,如果靜態(tài)的List
大小永遠(yuǎn)不會(huì)改變,那么您可以將其設(shè)置為不可變,如下所示:
public?static?final?ImmutableList<Map<String,?String>>?LIST_GROUP_MAP?= ????????Lists.mutable.<Map<String,?String>>withNValues( ????????????????SIZE_LIST_GROUP_MAP, ????????????????ConcurrentHashMap::new).toImmutable();
注意:我是 Eclipse Collections 的提交者。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用雙大括號(hào)來完成此操作,但最終會(huì)得到 ArrayList 的子類:
private static final int SIZE_LIST_GROUP_MAP = 10;
public static final List<Map<String, String>> LIST_GROUP_MAP = new ArrayList<>() {{
for(int i=0; i < SIZE_LIST_GROUP_MAP; i++)
{
add(new HashMap<>());
}
}};
添加回答
舉報(bào)