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

Groovy脚本如何获取Map中指定key的所有值?

问题分析

你用Groovy字面量创建的mymap会自动去重重复key,后面的name:"dinesh"和likes:"ice"会覆盖前面的name:"raju"和likes:"cheese",所以实际你的map里只有两组键值对,调用find自然只能拿到最后一个likes的值。

解决方案

要存储同一个key对应的多个值,需要使用支持多值的Map结构,以下两种方式都可以实现:

方式1:使用Groovy的MultiValueMap注解

@Grab('org.codehaus.groovy:groovy-all:3.0.17')
import groovy.transform.MultiValueMap

@MultiValueMap
def mymap = [:]
mymap.put("name", "raju")
mymap.put("likes", "cheese")
mymap.put("name", "dinesh")
mymap.put("likes", "ice")

def x = mymap.get("likes")
println x.join(", ") // 输出 cheese, ice

方式2:手动构建存列表的Map

def mymap = [:].withDefault { [] }
mymap.name << "raju"
mymap.likes << "cheese"
mymap.name << "dinesh"
mymap.likes << "ice"

def x = mymap.likes
println x.join(", ") // 输出 cheese, ice

内容的提问来源于stack exchange,提问作者Dinesh Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:42:32