开发者社区> 韩曙亮> 正文

【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )

简介: 【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
+关注继续查看

文章目录

一、使用 for 循环遍历集合

二、使用 each 方法遍历集合

三、集合的 each 方法返回值分析

四、完整代码示例





一、使用 for 循环遍历集合


使用 for 循环 , 遍历集合 , 格式为 : for ( 变量名 in 集合变量名 ) ;


       

// 使用 for 循环遍历集合
        println ""
        for (i in list) {
            print i + " "
        }
        println ""


执行结果 :


1 2 3 





二、使用 each 方法遍历集合


调用集合的 each 方法 , 传入闭包作为参数 , 可以遍历集合 , 闭包就是遍历时执行的内容 ;


   

public static <T> Iterable<T> each(
        Iterable<T> self, 
        @ClosureParams(FirstParam.FirstGenericType.class) Closure closure)


代码示例 :


       

// II. 调用集合的 each 方法遍历
        // 使用集合的 each 方法进行遍历
        // 传入的闭包参数 , 就是循环体内容
        // 闭包中的 it 参数 , 就是当前正在遍历的元素本身
        list.each {
            print it + " "
        }
        println ""


执行结果 :


1 2 3






三、集合的 each 方法返回值分析


使用新的集合变量接收 集合 each 方法的返回值 , 如果修改该变量的值 , 则原集合的值也会跟着改变 , 说明 each 方法返回的集合就是原来的集合 ;



代码示例 :


     

// III. 集合的 each 方法 返回的集合就是原来的集合
        // 接收 each 方法返回的集合
        def list2 = list.each {
            print it + " "
        }
        list2[0] = "8"
        println list
        println list2



执行结果 :


1 2 3 
[8, 2, 3]
[8, 2, 3]





四、完整代码示例


完整代码示例 :


class Test {
    static void main(args) {
        // 为 ArrayList 设置初始值
        def list = ["1", "2", "3"]
        // I. 使用 for 循环遍历
        // 使用 for 循环遍历集合
        println ""
        for (i in list) {
            print i + " "
        }
        println ""
        // II. 调用集合的 each 方法遍历
        // 使用集合的 each 方法进行遍历
        // 传入的闭包参数 , 就是循环体内容
        // 闭包中的 it 参数 , 就是当前正在遍历的元素本身
        list.each {
            print it + " "
        }
        println ""
        // III. 集合的 each 方法 返回的集合就是原来的集合
        // 接收 each 方法返回的集合
        def list2 = list.each {
            print it + " "
        }
        println ""
        list2[0] = "8"
        println list
        println list2
    }
}


执行结果 :


1 2 3 
1 2 3 
1 2 3 
[8, 2, 3]
[8, 2, 3]

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
React中使用Echarts实现数据可视化的小案例(基础文章)
React中使用Echarts实现数据可视化的小案例(基础文章)
139 0
使用Portainer或者UI for Docker可视化管理你的树莓派容器
本文讲的是使用Portainer或者UI for Docker可视化管理你的树莓派容器【编者的话】Stefan Scherer是Docker海盗船长,微软MVP。专注于Docker技术在ARM体系中应用。
4199 0
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
100 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
28066 0
mono for android使用WCF编译问题
原来安装Mono For Android4.10的时候没问题。这次安装的是4.12.02001就有问题了。晕死。 无法解决“System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”与“System.ServiceModel, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”之间的冲突。
622 0
react native插件 react-navigation使用心得
StackNavigator StackNavigator(screens,configs) const Stack = StackNavigator({ Home: { screen: Home, }, Profile: { screen: Profile } }.
1302 0
Jquery的 each的使用 $.each()
下面提一下each的几种常用的用法 1.each处理一维数组 var arr1 = [ "aaa", "bbb", "ccc" ]; $.each(arr1, function(i,val){ alert(i); alert(va...
835 0
使用Amoeba for mysql实现mysql读写分离
<p>https://www.centos.bz/2012/05/amoeba-for-mysql/</p> <p>http://2999835.blog.51cto.com/2989835/1308167<br></p> <p>http://dwchaoyue.blog.51cto.com/2826417/1558523<br></p> <p>http://2999835.blog
1148 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20142 0
+关注
韩曙亮
专注 Android 领域
2601
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载