6 ответов:
.contains () является лучшим методом для списков, но для карт вам нужно будет использовать .containsKey () or .containsValue()
[a:1,b:2,c:3].containsValue(3) [a:1,b:2,c:3].containsKey('a')
Если вы действительно хотите, чтобы ваш метод includes был включен в ArrayList, просто добавьте его:
ArrayList.metaClass.includes = { i -> i in delegate }
важно получил для использования .содержит () в коллекции объектов, таких как Домены. Если объявление домена содержит EqualsAndHashCode или некоторые другие реализации equals (), чтобы определить, равны ли эти Ojbects, и вы установили его следующим образом...
import groovy.transform.EqualsAndHashCode @EqualsAndHashCode(includes = "settingNameId, value")далее .contains (myObjectToCompareTo) будет оценивать данные в myObjectToCompareTo с данными для каждого экземпляра объекта в коллекции. Итак, если ваш метод equals не соответствует табаку, как и мой, вы могут появиться неожиданные результаты.
def fruitBag = ["orange","banana","coconut"] def fruit = fruitBag.collect{item -> item.contains('n')}Я сделал это так, чтобы он работал, если кто-то ищет его.
Comments