简体   繁体   English

遍历列表 <Map<Integer, Map<Long, Integer> &gt;&gt;用Java

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

As my title suggests, I'm struggling with looping through the data structure given. 就像我的标题所暗示的那样,我正在努力遍历给定的数据结构。

I have a List of Maps which contain an Integer key and a Map value which contains a Long and an Integer. 我有一个包含Integer键的Map列表和一个包含Long和Integer的Map值。

How can I loop through the list, then map, then map to be able to access all of the required fields? 如何遍历列表,然后映射,然后映射才能访问所有必填字段?

Thanks. 谢谢。

EDIT: In response to the comments, the looping through the list I'm fine with. 编辑:为了回应评论,循环遍历我可以使用的列表。 So step one is to loop through the list, so I'm then left with: 因此,第一步是遍历列表,然后剩下的是:

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

It's what goes in there that confuses me. 这就是让我感到困惑的东西。

Currently I have: 目前我有:

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();
        }
    }

And I'm struggling to get into that final Map of 我正在努力进入最终的地图

its just matter of being careful and being able to differentiate between map and list iterations 只是要小心并能够区分maplist迭代而已

here is just an example: 这只是一个例子:

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(){ 
      }
   }
}

Try this ;) 尝试这个 ;)

 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();
             }
        }
    }

If the list of Maps is : List>> list; 如果地图列表是:List >> list; Then you can access each Integer in the innermost map as follows: 然后,您可以如下访问最里面的映射中的每个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)); 
            }
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Java-收藏集列表 <Map<Integer,Integer> &gt; - Java - collections List<Map<Integer,Integer>> Java 8流转换列表 <Integer[]> 到地图 <Integer,List<Integer> &gt; - Java 8 stream- convert List<Integer[]> to Map<Integer,List<Integer>> 转换地图 <Integer, List<Object> &gt;到地图 <Integer, Map<String, Map<LocalDate, Integer> &gt;&gt;使用Java流API - Convert Map<Integer, List<Object>> to Map<Integer, Map<String, Map<LocalDate, Integer>>> using Java stream API 使用Java 8流,如何转换Map <String, Map<String, List<Person> &gt;&gt;到地图 <Integer, Map<String, Integer> &gt;? - Using Java 8 streams, how to transform Map<String, Map<String, List<Person>>> to Map<Integer, Map<String, Integer>>? Java List <String>到Map <String,Integer> convertion - Java List<String> to Map<String, Integer> convertion Java 8流到Map <Integer, List<String> &gt; - Java 8 stream to Map<Integer, List<String>> Java 向 Map 添加新元素时出现问题<integer, list<integer> ></integer,> - Java Problem with adding new elements to Map<Integer, List<Integer>> Java遍历整数数组 - Java looping through integer array 反转地图<Integer, Integer>进入地图<key, list<Integer> &gt; 使用流 - Inverting Map<Integer, Integer> into a Map<key, list<Integer>> using Streams 转换地图 <Integer, List<Integer> &gt;列表 <Integer> 使用java8流 - Convert Map<Integer, List<Integer>> to List<Integer> using java8 streams
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM