groovy - 初始化/添加到 Groovy 中列表的 Map 值的最佳方法

标签 groovy

我发现自己反复编写此代码:

map[id] = map[id]  ?  map[id] + newListItem : [newListItem]

是否有更简洁的方法将值初始化为 List 或添加到现有列表?

最佳答案

另一种方法是像这样使用 Map.withDefault (以 Ted 为例):

def map = [:].withDefault { [] }
def id = 'foo'
def newListItem = 'bar'

map[id] << newListItem

assert map[id] == ['bar']

map[id] << newListItem

assert map[id] == ['bar', 'bar']

关于groovy - 初始化/添加到 Groovy 中列表的 Map 值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119282/

相关文章:

gradle - 如何从 Gradle 中的 Kotlin 获取 Groovy DSL 提供的值

groovy - 如何在 groovy 中使用 String.format?

java - 尝试获取包括使用 AsciiDoc Java 接口(interface)

grails - 如何在 Grails Controller 之间传递错误消息?

grails - Groovy 中的 sql.rows() 运行缓慢

javascript - 用于使 Jira 中所需字段基于 radio 检查创建问题屏幕的脚本?

java - 蜂窝一键通 (PoC) 客户端和服务器

Java/Groovy 和 MySQL : Checking if row exists in table

mysql - 域类中的图像属性

java - 使用带有可选 JVM 参数的 Groovy AntBuilder()