【Groovy】集合遍历 ( 调用集合的 any 函数判定集合中是否有指定匹配规则的元素 | 代码示例 )

举报
韩曙亮 发表于 2022/01/11 22:13:50 2022/01/11
【摘要】 文章目录 一、集合的 any 函数二、集合的 any 函数代码示例 一、集合的 any 函数 集合的 any 函数 , 用于判断集合中是否有 满足闭包中的条件 的元...





一、集合的 any 函数



集合的 any 函数 , 用于判断集合中是否有 满足闭包中的条件 的元素 , 返回一个布尔值 , true 或者 false ;


传入的闭包参数中 , it 表示当前正在判断的 集合元素值 , 在

def list = ["Java", "Kotlin", "Groovy", "Gradle"]

  
 
  • 1

集合中 , it 的类型是集合元素类型 String ;


如果找到了 匹配闭包中的条件 的元素 , 则返回true ; 否则 , 返回 false ;


集合中的 any 函数运行 :


    /**
     * 迭代iterable的内容,并检查谓词是否至少对一个元素有效.
     *
     * @param self    要遍历的 Iterable 对象 , 该参数一般是集合本身
     * @param closure 用于匹配的闭包谓词
     * @return true   如果对象的任何迭代与闭包谓词匹配
     * @since 1.0
     */
    public static <T> boolean any(Iterable<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure) {
        BooleanClosureWrapper bcw = new BooleanClosureWrapper(closure);
        for (Iterator<T> iter = self.iterator(); iter.hasNext();) {
            if (bcw.call(iter.next())) return true;
        }
        return false;
    }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16




二、集合的 any 函数代码示例



代码示例 :

class Test {
    static void main(args) {

        // 为 ArrayList 设置初始值
        def list = ["Java", "Kotlin", "Groovy", "Gradle"]

        // 查找集合中是否有 "Java" 元素
        def isMatch = list.any{
            it == "Java"
        }
        // true
        println isMatch

        // 查找集合中是否有 "C++" 元素
        isMatch = list.any{
            it == "C++"
        }
        // false
        println isMatch
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

执行结果 :

true
false

  
 
  • 1
  • 2

在这里插入图片描述

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/122166069

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。