La mia domanda con Groovy Maps. Ho cercato un modo per aggiungere una nuova voce a una mappa Groovy a livello di programmazione senza sovrascrivere la voce corrente. Per esempioCome si aggiungono più voci della mappa Groovy senza sovrascrivere le voci correnti?
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}"
}
Il primo passaggio produce questa mappa:
editsMap: [FlagId: 10001, FlagMnemonic: TRA, Azione: rassegna]
Ma il secondo passaggio sovrascrive il primo passaggio con: editsMap: [FlagId: 10002, FlagMnemonic: REB, Azione: deny]
Quello che sto cercando di fare è creare più voci all'interno di una mappa. Ho bisogno della mia carta per popolare qualcosa di simile:
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]
Una volta che ho popolato la mia mappa quindi ho bisogno di essere in grado di trovare certi valori, al fine di elaborare un messaggio. Credo di poter usare qualcosa del tipo:
def thisValue = appliedEditsMap[FlagId, '10001'] ?: "default"
per fare una rapida occhiata.
Qualcuno può aiutarmi a capire come aggiungere valori a una mappa Groovy in modo programmatico senza sovrascrivere i valori già presenti nella mappa?
È anche possibile eseguire: '[:]. ConDefault {[]} .with {map -> map.fruit << 'banana'; map.fruit << 'apple'; map.veg << 'carota'; mappa} ' –