2012-01-30 51 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