2014-09-04 49 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"]