【发布时间】:2012-05-19 11:06:18
【问题描述】:
当nestedMap 在put() 方法中创建时,我可以在我的迭代器中访问我的nestedMap,如下所示:
@Override
public String put(final String row, final String column, final String value) {
/**
* Second map which is contained by centralMap, that contain Strings as
* Keys and Values.
*/
Map<String, String> nestedMap;
if (centralMap.containsKey(row))
nestedMap = centralMap.get(row);
else
nestedMap = new HashMap<String, String>();
if (!nestedMap.containsKey(column))
counter++;
centralMap.put(row, nestedMap);
return nestedMap.put(column, value);
}
并且 centralMap 被声明为一个对象变量,
private final Map<String, Map<String, String>> centralMap;
但只是在构造函数中实例化,如下所示:
centralMap = new HashMap<String, Map<String, String>>();
我尝试实现的方法是 remove 方法:
@Override
public void remove() {
for (Map<String, String> map : centralMap.values()) {
map = centralMap.get(keyName);
iteratorNested.remove();
if (map.size() <= 0)
iteratorCentral.remove();
}
}
非常感谢!
【问题讨论】:
-
真的是嵌套地图吗?对我来说,它看起来像是另一个方法局部变量。
-
在哪个迭代器中访问?请举例说明您的意思。
-
如果你有这样一个 Map,centralMap
和一个嵌套地图,如上所述,只在 put 方法中创建,你将如何访问它?你可以做一个for-each循环,比如 for(Map<String,String> map : centralMap.values())map = ...但是当我不想使用循环时,我必须改变我的方法并将nestedMap作为我的类中的对象变量还是有另一种方法像centralMap.get(****) 一样,我不知道,还有任何其他解决方案可以访问上面实例化的nestedMap?谢谢!