首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在hashmap中迭代2个hashmap。

不能在hashmap中迭代2个hashmap。
EN

Stack Overflow用户
提问于 2014-05-12 13:03:54
回答 1查看 89关注 0票数 0

我不能迭代这个结构(Java):

代码语言:javascript
复制
HashMap<HashMap<Integer, Integer>, HashMap<Integer, Integer>> last
    = new HashMap<HashMap<Integer, Integer>, HashMap<Integer, Integer>>();

下面是我要添加到第一篇文章中的2 HashMaps:

代码语言:javascript
复制
HashMap<Integer, Integer> arrival = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> departure = new HashMap<Integer, Integer>();

尝试了不同的循环,读了几篇文章,但我无法连接点,直到现在才使它正确。

例如,我希望能够在循环中获得/打印两个HashMaps中的HashMap中的四个整数值。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-12 13:15:41

首先,我不认为在另一个HashMap中使用key作为key是个好主意。看起来,您表示的是键值对映射(到达/目的地?),最好只为此创建一个类,并将该类添加到HashMap中。使用当前的结构会造成更多的混乱而不是好处。

尽管如此,这是有可能的循环通过。

循环通过HashMap的一种方法是循环它的入口集。因此,如果hHashMap<Integer, Integer>,则循环如下:

代码语言:javascript
复制
for(Map.Entry<Integer, Integer> entry : h.entrySet)
{
...
}

因此,对于一个名为HashMap<HashMap<Integer, Integer>, HashMap<Integer, Integer>> last

代码语言:javascript
复制
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
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23609880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档