从嵌套HashMap获取值到另一个Map

时间:2012-05-15 19:11:55

标签: java arraylist nested hashmap

嗨,我想存储一个嵌套Map的键和值,如下所示:

Map<ArrayList <String>, Map<String, Integer>> NestedMap = new HashMap<ArrayList<String>, Map<String, Integer>();

进入另一个变量,比如getKeyFromInsideMap和getValueFromInsideMap。因此,对于访问感兴趣的是内部Map String和Integer的值。我如何在代码中这样做?

我在论坛上尝试了几个例子,但我不知道语法是怎样的。你能为此提供一些代码吗?谢谢!

1 个答案:

答案 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
}

这将迭代单个地图的所有键和值。

希望这有帮助。