在 Java 中循环遍历列表<Map<Integer, Map<Long, Integer>>>

Looping through a List<Map<Integer, Map<Long, Integer>>> in Java

正如我的标题所暗示的,我正在努力循环遍历给定的数据结构。

我有一个映射列表,其中包含一个整数键和一个包含长整数和整数的映射值。

如何遍历列表,然后映射,然后映射才能访问所有必填字段?

谢谢。

编辑: 作为对评论的回应,循环遍历列表我很满意。 所以第一步是遍历列表,所以我剩下:

for (Map<Integer, Map<Long, Integer>> periodScores : request.getPeriodScoreMap()) {
...
}

让我困惑的是里面的内容。

目前我有:

for (Map<Integer, Map<Long, Integer>> periodScores : request.getPeriodScoreMap()) {
        while (periodScores.entrySet().iterator().hasNext()) {
            Map<Integer, Map<Long, Integer>> opponentScores =
                    (Map<Integer, Map<Long, Integer>>) periodScores.entrySet().iterator().next();
        }
    }

我正在努力进入

的最终地图

只是要小心并能够区分 maplist 迭代

这里只是一个例子:

for ( Map<Integer, Map<Long, Integer>> level1 : list){
   for(Map.Entry<Integer,Map<Long, Integer>> level2 : level1.entrySet() ){
      for(Map.Entry<Long,Integer> level3 : level2.getValue().entryList(){ 
      }
   }
}

试试这个 ;)

 List<Map<Integer, Map<Long, Integer>>> myList = new LinkedList<>();
    for(Map<Integer,Map<Long,Integer>> myListMap: myList){
        for(Entry<Integer, Map<Long,Integer> myListMapEntry : myListMap.entrySet()){
             Integer myListMapEntryInt = myListMapEntry.getKey();
             for(Entry<Long, Integer> myListMapEntryValue : myListMapEntry.getValue()){
                    Long myListMapEntryValueLong = myListMapEntryValue.getKey();
                    Integer myListMapEntryValueInteger = myListMapEntryValue.getValue();
             }
        }
    }

如果地图列表是:列表>>列表; 然后你可以访问最里面的映射中的每个 Integer 如下:

 for(Map<Integer,Map<Long,Integer>> outerMap : list){
        for(Integer innerMapKeys : outerMap.keySet()){
            Map<Long,Integer> innerMap = outerMap.get(innerMapKeys);
            for(Long key:innerMap.keySet()){
                System.out.println(innerMap.get(key)); 
            }
        }
    }