我的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);
答案 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.