Groovy Mapsで私の質問。私は、現在のエントリを上書きすることなく、プログラムでGroovyマップに新しいエントリを追加する方法を探してきました。例現在のエントリを上書きせずに複数の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}"
}
のために最初のパスは、このマップを生成します。
editsMap:[FlagId:10001、FlagMnemonic:TRA、アクション:レビュー]
しかし、第二のパスを持つ最初のパス上書き: editsMapを: [FlagId:10002、FlagMnemonic:REB、Action:deny]
私がしようとしているのは、1つのマップ内に複数のエントリを作成することです。その後、私はメッセージを処理するために特定の値を見つけることができるようにする必要があり、私は私のマップを埋めた後
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]
:私はこのような何かを埋めるために、私のマップを必要としています。
def thisValue = appliedEditsMap[FlagId, '10001'] ?: "default"
クイックルックアップを行うには、次のようなものを使用できると思います。
マップ内の値を上書きしなくても、プログラムでGroovyマップに値を追加する方法を理解できますか?
次のようにすることもできます: '[:]。withDefault {[]} .with {map-> map.fruit << 'banana'; map.fruit << 'apple'; map.veg << 'ニンジン';マップ} ' –