嗨,我想存储一个嵌套Map的键和值,如下所示:
Map<ArrayList <String>, Map<String, Integer>> NestedMap = new HashMap<ArrayList<String>, Map<String, Integer>();
进入另一个变量,比如getKeyFromInsideMap和getValueFromInsideMap。因此,对于访问感兴趣的是内部Map String和Integer的值。我如何在代码中这样做?
我在论坛上尝试了几个例子,但我不知道语法是怎样的。你能为此提供一些代码吗?谢谢!
答案 0 :(得分:4)
您从Map嵌套中获取的值与从unnested Map获取它们的方式相同,您只需要应用相同的过程两次:
//Java7 Diamond Notation
Map<ArrayList, Map<String, Integer>> nestedMap = new HashMap<>();
//get nested map
Map<String, Integer> innerMap = nestedMap.get(some_key_value_string);
//now get the Integer value from the innerMap
Integer innerMapValue = innerMap.get(some_key_value_string);
此外,如果您正在寻找特定的密钥,您可以像这样迭代地图:
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
System.out.println("Key: " + pairs.getKey() + " Val: " + pairs.getValue()));
it.remove(); // avoids a ConcurrentModificationException
}
这将迭代单个地图的所有键和值。
希望这有帮助。