2016-09-16 23 views
1

我想要一張包含列表作爲值的地圖。工作示例是這樣的:添加元素以列出或創建它,如果爲空?

def someObject = 'foo' 
def someMap = [:] 
if (someMap['key'] == null) { 
    someMap['key'] = [someObject] 
} else { 
    someMap['key'].add(someObject) 
} 

雖然這個作品,它是一種惱人的,因爲我需要與否地圖內的名單已經被創建區分。 Groovy是否有辦法讓這個更「美麗」?

+1

它不是Java,這是JS。 – Denis

+0

不要把標籤放在你的問題,不要緊! – GhostCat

+1

這不是JS,它是Groovy,它位於Java之上。 – Selbi

回答

2

你可以這樣做:

def someMap = [:].withDefault { [] } 

然後

someMap['key'] << someObject