文章目录
一、调用集合的 every 方法判定集合中的所有元素是否符合闭包规则
二、代码示例
一、调用集合的 every 方法判定集合中的所有元素是否符合闭包规则
集合的 every 方法 , 用于 判定 集合中的 所有元素是否 都符合指定的 闭包规则 ;
如果 所有的元素否符合 , 则返回 true ;
如果 有 1 11 个元素不符合 , 即使其它 99 9999 个元素符合 , 返回 false ;
只要集合中出现一个元素不符合闭包规则 , 则返回 false ;
Collection 的 every 函数原型 :
/** * 用于确定给定谓词闭包是否有效 (i.e.&nsbp;返回 * <code>true</code> 当所有的集合元素都符合闭包谓词). * 集合的简单示例: * <pre>def list = [3,4,5] * def greaterThanTwo = list.every { it > 2 } * </pre> * * @param self 要遍历的集合 * @param closure 闭包 , 其中定义匹配规则 * @return 如果对象的每次迭代都与闭包谓词匹配,则为 true * @since 2.3.0 */ public static <T> boolean every(Iterable<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure) { return every(self.iterator(), closure); }
" =~ " 运算符相当于 Java 中的 contains 函数 , 用于判断字符串中是否包含了另外一个子串 ;
代码示例 :
// 为 ArrayList 设置初始值 def list = ["Java", "Gradle"] // 查找集合中的元素是否都包含 a def isContainA = list.every{ it =~ "a" } // true println isContainA
执行结果 :
true
二、代码示例
代码示例 :
class Test { static void main(args) { // 为 ArrayList 设置初始值 def list0 = ["Java", "Gradle"] // 查找集合中的元素是否都包含 a def isContainA = list0.every{ it =~ "a" } // true println isContainA // 定义集合 def list = [3,4,5] // 判定每个元素是否都大于 2 def greaterThanTwo = list.every { it > 2 } // 打印结果 , true , 上述集合中所有元素都大于 2 , 否符合闭包规则 println greaterThanTwo // 定义集合 def list2 = [3,4,5] // 判定每个元素是否都大于 3 def greaterThanTwo2 = list.every { it > 3 } // 打印结果 , false , 上述集合中有 1 个元素等于 3 , 不符合闭包规则 println greaterThanTwo2 } }
执行结果 :
true true false