2015-11-05 2 views
1

Есть ли простой способ проверить, содержит ли набор объектов свойство со значением?Groovy - простой способ проверить, имеет ли набор объектов свойство, которое содержит значение

Пример то, что я ищу:

[[name:'a'],[name:'b'],[name:'c']].toSet().contains{it->it.name=='b'} == true

EDIT: Я придумал решение, но если кто-то имеет более эффективный тот, который, возможно, не создает новую коллекцию, пожалуйста, поделитесь им.

[[name:'a'],[name:'b'],[name:'c']].toSet().findAll{it.name=='b'}.size()>0

ответ

3
[[name: 'a'], [name: 'b'], [name: 'c']].any{ it.name == 'b' } 
0
def x1 = [['name':'a'],['name':'b'],['name':'c']] 
def x2 = x1.​groupBy{it.name}​​​​​​​​​​​​​​​ 
x2.containsKey('b')​​​​ 

Это должно работать для вас.

+0

Я создал список карт, а затем преобразовал список в набор для создания набора примеров. – Anonymous1

+0

@ Anonymous1 - Проверьте это. –

Смежные вопросы