println "=========集合定义与索引元素=============";
def lst1 = [];
println lst1.class;//java.util.ArrayList
lst1.add("a");
lst1[2] = 8;
println lst1;//["a", null, 8]
println lst1.size();//3
def arr1 = lst1 as String[]//list转换为string数组
println arr1.class;//[Ljava.lang.String;
println arr1;//{"a", null, "8"}
def arr2 = {};//闭包
println arr2.class;//Test1$_main_closure1
def lst2 = new ArrayList();
println lst2.class;
lst2[0..2] = ['a','b','c',4];//索引下标的数量不需要与range的数量一致
println lst2.size;//4
println lst2;//["a", "b", "c", 4]
lst2[0..1] = [];//索引01移除
println lst2;//["c", 4]
//通过下标索引元素,正数从前往后,负数从后往前
println "=========增加和移除元素=============";
def lst3 = ["a","b","c"];
lst3 += "d";//lst3:["a", "b", "c", "d"] 等价: lst3 = lst3.plus("d");
lst3 +=["e","f","g"];//lst3:["a", "b", "c", "d", "e", "f", "g"] 等价:lst3 = lst3.plus(["e","f","g"]);
lst3 << "A" << "B";//["a", "b", "c", "d", "e", "f", "g", "A", "B"] 类似append操作
lst3 -= "d";//["a", "b", "c","e","f","g", "A", "B"] 等价:lst3 = lst3.minus([])
lst3 -= ["e","f","g","A","B"];//["a", "b", "c"]
lst3 *=2;//["a", "b", "c", "a", "b", "c"] 等价:lst3 = lst3.Multiply(2);
println lst3;
println "==========控制结构============";
def myList = ["a","b","c"];
println myList.isCase("b")//true
switch ('b') {
case myList://b是否在myList集合中
println 'containt b';
break;
default:
println 'not containt b';
break;
}
def mylst2 = myList.grep([2,"c"]);//从myList中过滤2,"c",并返回过滤到的数据
println mylst2;//["c"]
mylst2.clear();
if(!mylst2){
println 'list is empty';
}
def sb ='';
for(v in ['a','b','c']){
sb +=v;
}
println sb;//abc
println "==========集合方法使用============";
def lst5 = [1,2,3];
def lastObj = lst5.pop();//和js的数组方法一样,弹出最后一个元素
println lastObj;//3;
println lst5;//[1,2]
//lst5.push(5);
//println lst5;//[1,2,5]
lst5 = lst5.reverse();//反转元素
println lst5;//[2,1]
lst5 = lst5.sort();//自然排序
println lst5;//[1,2]
lst5 = [[1,2],[2,3,4],[5]];
lst5.sort({item -> item.size();});//根据元素长度
println lst5;
//lst5.remove(idx);//删除指定索引
//lst5.remove(obj);//删除指定对象
//lst5.remove(lst);//删除指定集合
lst5 = [1,2,3,4,1];
lst5 = lst5.find({item -> item*2==2});//返回一个object
println lst5;//1 ,没有找到返回null
lst5 = [1,2,3,4,1];
lst5 = lst5.findAll({item -> item*2 == 2});//返回一个数组
println lst5;//[1,1] ,没有找到返回[]
lst5 = [1,2,3,[4,5,[6,7]]];
lst5 = lst5.flatten();//将所有嵌套的集合合并成一个集合
println lst5;//[1, 2, 3, 4, 5,6,7]
lst5 = [1,2,3];
lst5 = lst5.disjoint([5,6,4]);//没有交集true,有交集false
println lst5;//true
lst5 = [1,2,3,4];
println lst5.max();//求集合中最大的值 4
println lst5.min();//求集合中最小的值 1
println lst5.every();
println lst5.every({item -> item >0})//集合中的元素必须都满足才返回true
println lst5.any();
println lst5.any({item -> item >3});//集合中的元素有一个满足就返回true
lst5.each({item -> println item});//使用each迭代集合
lst5.reverseEach({item -> println item});//使用reverseEach反向迭代集合
println lst5.sum();//所有元素求和
lst5 = lst5.join("-");//使用-拼接所有元素
println lst5;
相关推荐
本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。
姿势需要解锁,不学习怎么会? 老司机开个车,java和groovy都是比较实用的。python用的但是也是可以的
Java中使用Groovy的三种方式,详细见我的博客。
概述主要介绍Java、spring与groovy结合使用,高清英文版本
了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何使用 JUnit 轻松地进行测试。借助功能完善的 Groovy 开发环境和使用技能,...
Groovy环境搭建教程中的例子工程,纯Java、纯Groovy以及Java+Groovy混合 教程参考:http://blog.csdn.net/rcom10002/archive/2011/06/26/6568557.aspx
微服务-spring-boot-groovy 使用 Spring Boot 和 Groovy 构建微服务创建这些项目是为了在当地的达拉斯 Groovy Grails 用户组会议上展示微服务架构这些服务使用您需要安装才能开始使用的各种外部服务。 您将需要安装 ...
干货:Jenkins Pipeline调用shell、python、java、groovy脚本的正确使用姿势.doc
groovy入门经典,groovyeclipse 插件
Groovy在Spring中的简单使用,欢迎下载!
赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...
Groovy语言。 里面详细介绍了一些很有意思的方法。
赠送jar包:groovy-all-2.4.13.jar; 赠送原API文档:groovy-all-2.4.13-javadoc.jar; 赠送源代码:groovy-all-2.4.13-sources.jar; 赠送Maven依赖信息文件:groovy-all-2.4.13.pom; 包含翻译后的API文档:groovy...
Groovy_in_Action.pdf Groovy经典入门.pdf 使用Grails快速开发Web应用.pdf 在Eclipse里使用Grails类创建工具.pdf Programming Groovy. Dynamic Productivity for the Java Developer.pdf等一系列groovy资源
了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何使用 JUnit 轻松地进行测试。借助功能完善的 Groovy 开发环境和使用技能,...
NULL 博文链接:https://hudepin.iteye.com/blog/1354537
Groovy 调用 Java 类groovy 调用 Java class 十分方便,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该
Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有...
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
研究表明,使用Groovy比使用Java写程序,代码量少3-10倍。 DSL是新一代基于领域设计专用语言。由于Groovy的超级灵活性,你可以使用Groovy快速编写基于领域的小语言,从而将编码量进一步减少,程序更容易维护。越少...