我不能迭代这个结构(Java):
HashMap<HashMap<Integer, Integer>, HashMap<Integer, Integer>> last
= new HashMap<HashMap<Integer, Integer>, HashMap<Integer, Integer>>();
这些是我在第一个中添加的2个HashMaps:
HashMap<Integer, Integer> arrival = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> departure = new HashMap<Integer, Integer>();
尝试了各种循环,阅读了几篇文章,但直到现在我都无法连接点以使其正确。
我希望例如能够在循环中一起从HashMap中的两个HashMaps获取/打印四个整数值。
谢谢!
答案 0 :(得分:0)
首先,我认为在另一个HashMap
中将key
作为HashMap
并不是一个好主意。看起来您正在表示键值对(到达/目的地?)的地图,您最好为此创建一个类并将该类添加到HashMap
。使用您当前的结构将导致更多的混乱而不是好处。
那就是说, 可以循环使用它。
循环HashMap的一种方法是循环访问其入口集。因此,如果h
是HashMap<Integer, Integer>
,则循环为:
for(Map.Entry<Integer, Integer> entry : h.entrySet)
{
...
}
因此,对于名为HashMap<HashMap<Integer, Integer>, HashMap<Integer, Integer>>
last
for(Map.Entry<HashMap<Integer, Integer>, HashMap<Integer, Integer>> entry : last.entrySet())
{
HashMap<Integer, Integer> key = entry.getKey();
for(Map.Entry<Integer, Integer> keyMapEntry : key.entrySet())
{
//Loop through the value HashMap.
//keyMapEntry.getKey() gives the key of the Hashmap that is the key in the
//original Hashmap, keyMapEntry.getValue() gives the value
}
HashMap<Integer, Integer> value = entry.getValue();
for(Map.Entry<Integer, Integer> valueMapEntry : value.entrySet())
{
//Loop through the key HashMap
//valueMapEntry.getKey() gives the key of the Hashmap that is the value in the
//original Hashmap, valueMapEntry.getValue() gives the value
}
}