如何更新地图内的地图?

时间:2012-01-30 19:23:23

标签: java map

我的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 个答案:

答案 0 :(得分:3)

您可以考虑使用google guava库,它有一个Table类(基本上是地图地图):

http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Table.html

然后你有一个put方法,它接受行,列和值(这有点简单)。

答案 1 :(得分: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.