通过列表地图迭代

时间:2016-09-13 14:50:40

标签: java collections

我有map喜欢这个

Map<String, Map<String, List<String>>> m;

我希望遍历列表

我的逻辑是这样的:

  1. 首先我得到第一张地图的钥匙
  2. 获取secondmap的密钥
  3. 并从该键我正在迭代列表。

  4. for (Map m:m.keyset()){
    
        for (Map m1:m.getKey(){
    
            List<String> l = m1.getKey(){
    
            for (String s:l){
            }
        }
    }
    

    这是对的吗?

    我很难测试它...请帮帮我...... :)

3 个答案:

答案 0 :(得分:2)

你几乎拥有它,这里是你正在寻找的东西

Map<String,Map<String,List<String>>> m = new HashMap<String, Map<String,List<String>>>();

for(String k : m.keySet()) {
    Map<String,List<String>> m1 = m.get(k);

    for(String k1 : m1.keySet()) {
        List<String> l = m1.get(k1);

        for (String s : l){
        }
    }
}

答案 1 :(得分:1)

简单地遍历值

    Map<String,Map<String,List<String>>> m = new HashMap<String, Map<String,List<String>>>();

    for(Map<String,List<String>> m2 : m.values()) {
        for(List<String> l : m2.values()) {
            for (String s : l){
            }
        }
    }

答案 2 :(得分:1)

Map<String, Map<String, List<String>>> m = new HashMap<>();

使用条目

迭代地图
for (Map.Entry<String, Map<String,List<String>> entry : m.entrySet()) {
    for (Map.Entry<String, List<String>> innerEntry : entry.entrySet()) {
        for (String elem : innerEntry) {
            ...
        }
    }
}

就Java 8而言:

m.forEach((s, entry) -> entry.forEach(
        (s1, innerEntry) -> innerEntry.forEach(
                elem -> { ... }
        )
));