我需要浅浅地复制Groovy映射中的所有条目,除了一个,我已经知道了密钥.我更喜欢不可变和简洁的方法,并且该minus()方法非常合适,除了提供密钥是不够的,我必须做这样的事情:
def map = [a:"aa", b:"bb"]
def knownKey = "a"
def result = map - [(knownKey):map[knownKey]]
assert result == [b:"bb"]
Run Code Online (Sandbox Code Playgroud)
或者,我可以放弃(暂时)不变性并remove()使用键作为参数调用该方法.
我可以采取一种常规方法吗?
你应该使用findAll如下:
def map = [a:"aa", b:"bb"]
def knownKey = "a"
def result = map.findAll { it.key != knownKey }
assert result == [b:"bb"]
Run Code Online (Sandbox Code Playgroud)