1

我有一张地图,想获取所有键匹配正则表达式的键:值对。我有一个解决方案,我首先 grep 查找 keySet(),然后循环查找。但是必须有一个更简单的解决方案(或者我希望)。

前任:

def qmap = [name: "hair", style: 'straight', color_1: 'brown', color_2: 'blonde', color_3: 'black']

我想得到一个只有颜色的子图。

def colors = [color_1: 'brown', color_2: 'blonde', color_3: 'black']

我可以使用 .grep 获取密钥,但这只是给了我密钥,我需要循环获取值。

def colorKeys = qmap.keySet().grep(~/^color.*/)

任何想法如何做到这一点?

4

2 回答 2

1

你可以做

qmap.subMap( colorKeys )
于 2013-03-20T23:55:10.020 回答
1

真的很简单。做就是了:

qmap.findAll{ k,v -> k.matches(~/^color.*/) }
于 2013-03-22T14:12:32.987 回答