2012-01-30 69 views
2

我有一個Map of Maps,看起來像這樣:如何更新地圖內的地圖?

Map<String, Map<String, Object>> data; 

我想更新內部的地圖。

我是否應該每次更新內部映射時執行以下操作,或者是否有其他直接/更好的方法來完成它?

Map<String, Object> innerMap = data.get("outer_key"); 
innerMap.put("inner_key", value); 
data.put("outer_key", innerMap); 
+2

'inner.put( 「inner_key」,值);',應該已'innerMap.put( 「inner_key」值);'? – yannis 2012-01-30 19:39:54

+1

你不需要第三行。您正在共享對單個實例的引用(內部映射)。 – allingeek 2012-01-30 20:13:24

回答

3

我想你可能在那裏有一個錯字,我假設inner實際上是innerMap。我可能會改變它有點在外部映射佔null值:

Map<String, Object> innerMap = data.get("outer_key"); 

// Added this if statement to handle null values in the outer map. 
if (innerMap == null) { 
    innerMap = new HashMap<String, Object>(); 
    data.put("outer_key", innerMap); 
} 

innerMap.put("inner_key", value); 
// data.put("outer_key", innerMap); <-- This is not needed, innerMap is already a value in 
            // the outer map. 
+0

謝謝,「< - 這不需要...」部分幫助! – 500865 2012-01-30 19:45:46