我对Groovy Maps的问题.我一直在寻找一种方法,以编程方式将新条目添加到Groovy映射而不覆盖当前条目.例如
def editsMap = [:]
lineEdits.flag.each
{ lineEdits_Flag ->
editsMap.put('FlagId',lineEdits_Flag.id)
editsMap.put('FlagMnemonic',lineEdits_Flag.mnemonic)
editsMap.put('Action',lineEdits_Flag.action)
println "editsMap: ${editsMap}"
}
Run Code Online (Sandbox Code Playgroud)
第一遍产生这个地图:
editsMap:[FlagId:10001,FlagMnemonic:TRA,Action:review]
但第二遍用:editsMap覆盖第一遍:[FlagId:10002,FlagMnemonic:REB,Action:deny]
我要做的是在一个地图中创建多个条目.我需要我的地图填充这样的东西:
editsMap: [FlagId:10001, FlagMnemonic:TRA, Action:review]
editsMap: [FlagId:10002, FlagMnemonic:REB, Action:deny]
editsMap: [FlagId:10003, FlagMnemonic:UNB, Action:deny]
editsMap: [FlagId:20001, FlagMnemonic:REB, Action:deny]
editsMap: [FlagId:20002, FlagMnemonic:ICD, Action:review]
editsMap: [FlagId:30001, FlagMnemonic:REB, Action:deny]
editsMap: [FlagId:40001, FlagMnemonic:ICD, Action:review]
editsMap: [FlagId:40002, FlagMnemonic:MPR, Action:review]
editsMap: [FlagId:50001, FlagMnemonic:CPT, Action:deny]
editsMap: [FlagId:60001, FlagMnemonic:DTU, Action:deny]
editsMap: [FlagId:70001, FlagMnemonic:ICD, Action:review]
editsMap: [FlagId:70002, FlagMnemonic:MPR, Action:review]
Run Code Online (Sandbox Code Playgroud)
一旦我填充了我的地图,我就需要能够找到某些值来处理消息.我相信我可以使用类似的东西:
def thisValue = appliedEditsMap[FlagId, '10001'] ?: "default"
Run Code Online (Sandbox Code Playgroud)
快速查找.
有人可以帮助我了解如何以编程方式将值添加到Groovy地图而不覆盖地图中已有的值吗?