Java 如何迭代列表之类的列表<;地图<;字符串,对象>&燃气轮机;

Java 如何迭代列表之类的列表<;地图<;字符串,对象>&燃气轮机;,java,foreach,Java,Foreach,我有一个方法返回列表 如何迭代类似于list的列表?这应该可以: List<Map<String, Object>> list = ... for (Map<String, Object> map : list) { ... } List=。。。 用于(地图:列表) { ... } 您还可以使用for循环中的或方法来访问列表中的元素。List List=getMyMap(); List<Map<String, Object>&

我有一个方法返回
列表

如何迭代类似于
list
的列表?

这应该可以:

List<Map<String, Object>> list = ...

for (Map<String, Object> map : list)
{
     ...
}
List=。。。
用于(地图:列表)
{
...
}
您还可以使用for循环中的或方法来访问列表中的元素。

List List=getMyMap();
List<Map<String, Object>> list = getMyMap();    
for (Map<String, Object> map : list) {
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        System.out.println(entry.getKey() + " - " + entry.getValue());
    }
}
用于(地图:列表){ 对于(Map.Entry:Map.entrySet()){ System.out.println(entry.getKey()+“-”+entry.getValue()); } }
  • 循环浏览地图列表
  • 处理地图条目

  • 听起来你在找这样的东西:

    List<Map<String, Object>> list; // this is what you have already
    
    for (Map<String, Object> map : list) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
        }
    }
    
    [isAllowed=true, isValid=true, cardNumber=672xxxxxxxxxxx]
    
    列表列表;//这就是你已经拥有的
    用于(地图:列表){
    对于(Map.Entry:Map.entrySet()){
    String key=entry.getKey();
    对象值=entry.getValue();
    }
    }
    
    使用java 1.8(8),您可以像这样重新编写它:

    list.forEach(item -> 
                    item.forEach((k, v) -> System.out.println(k + ": " + (String)v)
        );
    
    Map Map=newhashmap();
    地图放置(“第一”、“1”);
    地图放置(“第二”、“2”);
    地图放置(“第三”、“3”);
    地图放置(“四”、“四”);
    //这就是逻辑
    对于(Map.Entry:Map.entrySet()){
    System.out.println(entry.getKey()+“-”+entry.getValue());
    }
    
    我向您发布一个简单的
    列表示例

    publicstaticvoidmain(字符串[]args){
    Map map1=新的HashMap();
    map1.put(“map1键1”,(对象)“map1值1”);
    map1.put(“map1键2”,(对象)“map1值2”);
    Map map2=新的HashMap();
    map2.put(“map2键1”,(对象)“map2值1”);
    map2.put(“map2键2”,(对象)“map2值2”);
    列表=新的ArrayList();
    列表。添加(map1);
    列表。添加(map2);
    list.stream().forEach(mapsData->{
    mapsData.entrySet().forEach(mapData->{
    System.out.println(“Key:+mapData.getKey()+”值:+mapData.getValue());
    });
    });
    }
    
    这是一种简单的方法,可以迭代地图列表作为我的起点。我的列表中有一个带有3个值的Map对象

    List<Map<String, Object>>
    
    Eclipse IDE控制台中的输出如下所示:

    List<Map<String, Object>> list; // this is what you have already
    
    for (Map<String, Object> map : list) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
        }
    }
    
    [isAllowed=true, isValid=true, cardNumber=672xxxxxxxxxxx]
    
    用于模糊处理的x

    另一种方式:

    answerListOfMaps.stream().flatMap(map -> map.entrySet().stream())
            .forEach( entry -> System.out.println(entry.getKey() + ":" + entry.getValue()) );
    
    控制台:

    isAllowed:true
    isValid:true
    cardNumber:672xxxxxxxxxxx
    

    如果可以选择的话,尽量避免像这样过于复杂的嵌套集合数据结构,而是创建一个新类。如果另一个程序员遇到了你的列表,他可能需要深入研究你的代码,以找出它确切地包含了什么。通过一个类,你可以通过命名和文档说明你的意图。您分配了两次
    map
    ,列表中的值应该是
    map
    。问题是关于遍历映射列表,而不仅仅是映射。我会投反对票,但你这样做会失去一分。谢谢兄弟。好建议
    isAllowed:true
    isValid:true
    cardNumber:672xxxxxxxxxxx