You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy中如何遍历Map列表并打印每个Map的键值对?

问题分析与解决方法

你的代码输出null null的原因很明确:m是完整的Map对象,它并没有key和value这两个直接属性,调用这两个不存在的属性自然会返回null。要正确打印每个Map的键值对,需要遍历Map内部的键值条目,或者利用Groovy的语法糖直接解构键和值。

正确实现方式

方式1:嵌套遍历Map的条目

遍历List中的每个Map,再遍历Map的每个entry对象来获取键和值:

#!/usr/local/bin/groovy

List<Map<String,String>> list = []
Map<String, String> map1 = ["a":"a"]
list.add(map1)
Map<String, String> map2 = ["b":"b"]
list.add(map2)

list.each { map ->
    map.each { entry ->
        println "${entry.key} ${entry.value}"
    }
}

方式2:直接解构键值对

利用Groovy的语法糖,在遍历Map时直接获取键和值参数:

list.each { map ->
    map.each { k, v ->
        println "$k $v"
    }
}

方式3:针对单键值对的Map(你的场景)

如果列表中的每个Map都只有一个键值对,可以直接取Map的第一个条目:

list.each { map ->
    def (k, v) = map.first()
    println "$k $v"
}

执行后的正确输出

a a
b b

内容的提问来源于stack exchange,提问作者Chris F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:52:04