在 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();
}
}
我正在努力进入
的最终地图
只是要小心并能够区分 map
和 list
迭代
这里只是一个例子:
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));
}
}
}
正如我的标题所暗示的,我正在努力循环遍历给定的数据结构。
我有一个映射列表,其中包含一个整数键和一个包含长整数和整数的映射值。
如何遍历列表,然后映射,然后映射才能访问所有必填字段?
谢谢。
编辑: 作为对评论的回应,循环遍历列表我很满意。 所以第一步是遍历列表,所以我剩下:
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();
}
}
我正在努力进入
的最终地图只是要小心并能够区分 map
和 list
迭代
这里只是一个例子:
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));
}
}
}