Groovy中如何通过变量传入的键从已填充HashMap取值
嗨,这事儿在Groovy里超简单的,我给你举个实际的例子,一看就懂:
第一步:先确认你的HashMap已经填充完成
不管你是用Groovy的简化语法初始化,还是传统的Java式填充,都没问题,比如:
// Groovy简化写法(推荐,更简洁) def myHashMap = [ "productId": 1001, "productName": "无线耳机", "price": 299.99 ] // 或者是你可能用的Java风格填充方式 // def myHashMap = new HashMap() // myHashMap.put("productId", 1001) // myHashMap.put("productName", "无线耳机") // myHashMap.put("price", 299.99)
第二步:定义存储目标键的变量
把你要查询的键放到一个变量里——这个变量可以是静态赋值,也可以是动态获取(比如从用户输入、配置文件读取),示例如下:
def targetKey = "productName"
第三步:通过变量键获取对应值
Groovy提供了两种常用的方式,都能完美实现需求:
方式1:Groovy专属的简洁语法(最常用)
直接用map[变量名]的形式取值,语法非常直观:
def resultValue = myHashMap[targetKey] println "查询到的值是:$resultValue" // 输出:查询到的值是:无线耳机
方式2:兼容Java的get()方法
如果你习惯Java的写法,也可以用get()方法传入变量,完全兼容:
def resultValue = myHashMap.get(targetKey) println "查询到的值是:$resultValue" // 输出:查询到的值是:无线耳机
额外小技巧:处理键不存在的情况
如果担心查询的键可能不存在,还可以用getOrDefault()方法设置默认值,避免返回null导致的异常:
def nonExistentKey = "stock" def resultValue = myHashMap.getOrDefault(nonExistentKey, "暂无数据") println "查询到的值是:$resultValue" // 输出:查询到的值是:暂无数据
内容的提问来源于stack exchange,提问作者Sreejata Pal
相关产品推荐
相关产品推荐

