dictionary - Groovy:在 map 列表中按键查找/返回 map 的值

标签 dictionary groovy collections

我有一个 map 列表,我想在列表中获取特定 map 并返回给定键的值。 我确定我缺少一些基本的东西,但我无法完成这项工作。我有几次失败的尝试:

void "find map by key in a list of maps"() {
        given: "a list of maps"
        List favorites = [
                [fruit: 'apple'],
                [color: 'yellow'],
                [activity: 'reading']]

        when:
        String favoriteColor = favorites.each {
            it.find { key, value ->
                key == 'color'
                return value
            }
        }

//        String favoriteColor = favorites.each { it['color'] }
//        String favoriteColor = favorites.find { it.key == 'color' }
//        String favoriteColor = favorites.collect { it['color'] }
//        String favoriteColor = favorites*.get('color')
//        String favoriteColor = favorites*.get('color').value
//        String favoriteColor = favorites.collect { it['color'] }.value as String
//        String favoriteColor = favorites.find { it['color'] }.value as String

        then:
        favoriteColor == 'yellow'
    }

是否有一种干净的方法来完成这项工作?

最佳答案

你可以简单地做

String favoriteColour = favorites.findResult { it.color }

关于dictionary - Groovy:在 map 列表中按键查找/返回 map 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118201/

相关文章:

python - 将元组列表转换为字典

python - 如何让所有排列从字典的每个值列表中选择一个项目?

Jenkins 管道作业 : Set sleep time from a string parameter?

python - 为什么 Python 不支持记录类型? (即可变的命名元组)

java - 从java中的Map列表中删除值

c# - 从 C# 中 main 之外的方法访问字典

string - 在groovy中用$替换一个单词

java - 开发一个 Maven 3 插件,为编译过程提供一些样板文件

php - Magento 自定义集合阻止正确的 Massaction 复选框选择

c# - 重新排序集合 C#