1

マップがあり、キーが正規表現と一致するすべてのキーと値のペアを取得したいと考えています。最初に keySet() をgrepしてループし、見つけるという解決策があります。しかし、もっと簡単な解決策が必要です (または私は望んでいます)。

元:

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 に答える