Groovy入门教程:集合与闭包操作解析

2星 需积分: 25 6 下载量 140 浏览量 更新于2024-12-02 收藏 74KB PDF 举报
“groovy快速入门指南(中文)” Groovy是一种动态、开源的编程语言,它与Java平台紧密集成,可以被用作脚本语言或用于构建完整的应用程序。本指南旨在帮助初学者快速掌握Groovy的基本概念和常用操作。 1、集合 Groovy中的集合包括List和Map,它们与Java的集合接口兼容。 (1)List Groovy的List与Java的`java.util.List`接口类似。例如,创建一个包含不同类型的元素(整数、浮点数、字符串和日期)的列表: ```groovy list = [1, 2, 'hello', new java.util.Date()] assert list.size() == 4 assert list.get(2) == 'hello' ``` Groovy中的一切都是对象,因此即使数字也会被自动包装成Integer对象。 (2)Map Groovy的Map与Java的`java.util.Map`接口类似,用于存储键值对。创建并访问Map的例子: ```groovy map = ['name': 'James', 'location': 'London'] assert map.size() == 2 assert map.get('name') == 'James' ``` 2、闭包(Closures) 闭包是Groovy的核心特性,类似于Java的匿名内部类,但更简洁。闭包可以有一个或多个参数,并且只包含一个方法。使用`{}`定义闭包,`|`前后的部分分别表示参数和执行代码。 ```groovy // 单参数闭包,使用it作为隐式参数 closure = { println("hello" + it) } closure.call("world!") // 多参数闭包 closure = { greeting, name -> println(greeting + name) } closure.call("hello", "world!") ``` 3、each `each`方法用于遍历集合,将每个元素传递给闭包进行处理。 ```groovy [1, 2, 3].each { item | print "${item}-" } // 输出:1- 2- 3- ``` 4、collect `collect`方法用于遍历集合,应用闭包并返回新的集合,通常用于数据转换。 ```groovy value = [1, 2, 3].collect { it * 2 } assert value == [2, 4, 6] ``` 5、find `find`方法根据闭包的返回值来查找集合中的第一个匹配项。 ```groovy value = [1, 2, 3, 4].find { it > 2 } assert value == 3 ``` 6、findAll `findAll`方法返回所有使闭包条件为真的元素组成的集合。 ```groovy value = [1, 2, 3, 4, 5].findAll { it % 2 == 0 } assert value == [2, 4] ``` 7、inject `inject`方法将初始值与集合的每个元素结合,通过闭包进行累积计算。 ```groovy sum = [1, 2, 3, 4, 5].inject(0) { acc, num -> acc + num } assert sum == 15 ``` 8、every `every`检查集合中的所有元素是否都满足闭包条件。 ```groovy boolean allPositive = [1, 2, 3].every { it > 0 } assert allPositive == true ``` 9、any `any`检查集合中是否存在至少一个元素满足闭包条件。 ```groovy boolean hasEven = [1, 3, 5].any { it % 2 == 0 } assert hasEven == false ``` 10、min/max `min`和`max`方法用于找出集合中的最小值和最大值。 ```groovy minValue = [1, 2, 3].min() assert minValue == 1 maxValue = [1, 2, 3].max() assert maxValue == 3 ``` 11、join `join`方法将集合元素连接成一个字符串,可以指定分隔符。 ```groovy str = [1, 2, 3].join(',') assert str == '1,2,3' ``` 12、yield 在Groovy的迭代器或生成器中,`yield`用于产出一个值。 这些是Groovy中关于集合操作和闭包的基础介绍。通过学习和实践这些基本概念,你可以快速上手Groovy编程,为使用Grails或其他Groovy框架打下坚实基础。