Groovy代码示例 – collect()方法

collect()方法的使用

Groovy的collect()方法用于遍历集合对象并执行闭包。本文将示例集合对象的collect()方法的使用。

collect()方法可以接受默认的闭包Closure.IDENTITY作为参数,也可以使用闭包(closure)作为参数,还可以使用集合(collection)及闭包(closure)作为参数。

//默认的闭包
public List collect()

//闭包作为参数
public List collect(Closure transform)

//集合和闭包作为参数
public Collection collect(Collection collector, Closure transform)

下面看一下简单collect()方法的典型应用

//定义一个list
def fruits = ["Banana", "Apple", "Grape", "Pear"]
//it为集合中的每个对象 对于每个对象执行toUpperCase()把所有的对象变成大写
def upperCaseFruits = fruits.collect { it.toUpperCase() }
println upperCaseFruits // [BANANA, APPLE, GRAPE, PEAR]

使用Collect()方法遍历并提供初始的集合对象作为参数

我们看一下如何遍历一个集合(fruits)以及把额外的集合(initialFruits)作为collect()方法的参数共同遍历。

//定义额外的集合
def initialFruits = ["Orange", "Lemon"]
//定义要遍历的集合
def fruits = ["Banana", "Apple", "Grape", "Pear"]
//执行遍历与闭包
def totalFruits = fruits.collect(initialFruits, { it.toUpperCase() })

//执行遍历的集合数据改变
println totalFruits // [Orange, Lemon, BANANA, APPLE, GRAPE, PEAR]
//额外集合的数据同样改变
println initialFruits // [Orange, Lemon, BANANA, APPLE, GRAPE, PEAR]

接下来看看如何遍历集合获得没有重复值的集合数据

//定义一个list,有重复数据Banana
def fruits = ["Banana", "Apple", "Grape", "Pear", "Banana"]
//使用一个空的HashSet作为遍历参数并执行闭包
def distinctFruits = fruits.collect(new HashSet(), { it })

//获得到没有重复数据的集合
println distinctFruits // [Apple, Pear, Grape, Banana]
上一篇 Groovy代码示例 - 数组的使用
下一篇 Groovy代码示例 - map
目录
文章列表
1 Swift - class与staitc关键字的区别与使用(类方法、静态方法)
Swift - class与staitc关键字的区别与使用(类方法、静态方法)
2
Vue Cli 生成的项目性能优化总结
Vue Cli 生成的项目性能优化总结
3
Spring Boot集成ActiveMQ
Spring Boot集成ActiveMQ
4
Gradle命令行打出多个apk包+共用一套资源
Gradle命令行打出多个apk包+共用一套资源
5
Spring Cloud Gateway接入记录
Spring Cloud Gateway接入记录
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。