最近学习了下groovy这门语言,感觉很犀利很简洁。groovy优缺点就不赘述了,有兴趣的google下。下面看下groovy对list的操作,也许能勾起你的兴趣。
1、创建list
static void main(args){ def list=[1,2,3,5,8,2] println list }
没错,不用new创建List,直接使用字面量赋值,简化了main方法和输出语句。
2、数组与集合转化
//定义string数组 def strs=[1,1,6] as String[] //定义集合 def list =[1,24,67,4] //数组转集合 list=strs.toList(); //集合转数组,集合可以像数组一样取值 strs=list as String[]
这里的as作为强转的关键字,据说是输入as 比shift+括号更快,考虑得很贴心。当然,我们甚至可以省略as关键字,前提是定义的变量需要明确的类型。
3、一些集合操作
添加元素:
println list<<213
结果:[1,213]
结论:我们可以使用 " << " 符号给集合添加元素
遍历集合:
list.each{ print it }
结果:1 2 3 5 5 8 2 213
结论:没错,不用for循环,直接使用each加上一对大括号,一对大括号代表闭包(暂时先这样用),it为其内部隐藏的游标,再加上简化版的控制台输出函数,看起来是不是非常简洁?
取集合元素:
println list[-1]
println list[2]
结果:213 3
结论:-1 代表去集合倒数第一个元素,集合也可以向数组一样取值
其他操作:
println list.join("-")
结果:1-2-3-5-5-8-2-213
def list2=[14,14,5] def lsit3=[list,list2].flatten(); println lsit3
结果:[1,213,5]
结论:合并两个集合,生成新集合
def list4=list-list2 println list4
结果:[1,213]
结论:在集合一中去得集合二包含的元素,如果集合一中有重复的元素包含在集合二中,那么都将被去掉。当然,有减法肯定有加法,加法与flatten类似。
def list5=[1,5] println list5.unique() //去重
结果:[1,5]
println list.reverse() //反转
结果:[213,1]
println list.sort();//升序排序
结果:[1,213]
引申:当然,我们可以实现降序排序,实现乱序,这需要我们通过闭包重写sort方法即可,具体在总结闭包的时候完善。
println list.count(5) //计算包含元素的个数 println list.indexOf(2) //取下标为2的元素 println list5.disjoint([1,3]) //判断是否有交集,有则返回false println list.sum() //求和,当然也可以通过闭包做更复杂的求和 println list.max() //求最大值 println list.min() //求最小值
以上总结部分集合操作的方法。虽然这些方法java中也有实现,但是,从代码的简洁和可读性来看,我更喜欢groovy的风格。才开始学习groovy,代码有问题的地方还望大虾指出,更希望大虾多多提意见,多多指导我
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。