2014-09-04 33 views
4

我需要淺拷貝Groovy地圖中的所有條目,除了一個,我已經知道了關鍵。我喜歡一成不變的和簡潔的方法,以及minus()方法是一個相當不錯的選擇,除了提供關鍵是不充分的,而且我會做這樣的事情:淺拷貝所有,但從一個條目groovy地圖

def map = [a:"aa", b:"bb"] 

def knownKey = "a" 
def result = map - [(knownKey):map[knownKey]] 
assert result == [b:"bb"] 

我也可以放棄(暫時)關於不變性,並用鍵作爲參數調用remove()方法。

有沒有可以採取的groovy'er方法?

回答

8

您應該如下使用findAll

def map = [a:"aa", b:"bb"] 
def knownKey = "a" 
def result = map.findAll { it.key != knownKey } 
assert result == [b:"bb"]