`
364434006
  • 浏览: 591896 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Groovy之List集合使用

 
阅读更多

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;

分享到:
评论

相关推荐

    java_groovy_python集合

    Groovy支持List、Set、Map等,且提供了许多便利的语法糖,如使用下标操作符[]来获取和设置元素,以及使用闭包进行集合操作,使代码更易读和写。 3. **Python集合**:Python的集合类型包括list、tuple、set和dict。...

    groovy速查手册

    Groovy支持多种集合数据类型,如列表(List)、映射(Map)等,这些数据类型的使用方式与Java相似,但Groovy提供了更多的语法糖,使得代码更加简洁易读。 #### 六、元编程 Groovy强大的元编程特性使得开发者能够...

    Z2-Groovy in Action.pdf

    Groovy的代码风格倾向于简洁和表达式丰富,例如在Groovy中可以直接使用true或false作为条件表达式,这是Groovy的动态类型特性之一。Groovy代码中的类声明和方法定义相比Java也更为简便。 5. Groovy的数据类型 ...

    实战groovy.rar

    3. 集合与闭包:熟悉Groovy的List、Map等集合操作,以及强大的闭包特性。 4. 文件I/O和网络编程:学习如何使用Groovy进行文件操作和网络通信。 5. 测试与调试:掌握Spock测试框架,进行单元测试和集成测试。 6. 深入...

    groovy的简单例子

    5. **集合操作**:Groovy提供了丰富的集合操作,如`each`、`collect`、`findAll`等。这些方法使得对数组和列表的操作更加方便。例如: ```groovy def numbers = [1, 2, 3, 4, 5] numbers.each { println(it) } //...

    groovy快速入门指南(中文)

    ### Groovy 快速入门指南知识点...Groovy 的强大之处在于它的简洁性和灵活性,这些特性使得 Groovy 成为一种非常易于学习和使用的编程语言。通过掌握这些基础知识,您可以迅速地使用 Groovy 开发出高效、可靠的软件。

    groovy+in+action

    - **数据类型**:Groovy支持基本的数据类型,如数字、字符串、布尔值等,并且引入了新的集合类型,如列表(List)和映射(Map)。 - **表达式与语句**:Groovy中的表达式和语句与Java类似,但更加灵活。例如,Groovy...

    java 动态脚本语言 精通 Groovy

    4. **闭包(Closures)**:Groovy中的闭包是其核心特性之一,类似于函数引用,可以作为参数传递,也可以作为返回值。闭包在处理集合操作时特别有用,如`each`和`collect`等。 5. **GDK (Groovy Development Kit)**...

    groovy api 资料 自学文档

    - Map和List的简写:Groovy可以用`[key1: value1, key2: value2]`创建Map,用`[value1, value2, ...]`创建List。 3. **Groovy的集合操作**: - 集合的增强操作:如`each`、`collect`、`grep`等,提供了一系列便捷...

    Groovy学习笔记

    - **集合操作**: 支持多种集合类型,如列表(List)和映射(Map),并提供了便捷的操作方法。 - **类和闭包**: Groovy支持面向对象编程,并且闭包是其一大特色。 - **控制语句**: 包括循环(`for`, `while`)、分支(`if`, ...

    groovy学习笔记

    总的来说,Groovy的学习涵盖了基础的数字和字符串操作,进阶的List、String、闭包、Map和Range的使用,以及函数的定义。通过这些知识点,你可以开始编写简单的Groovy脚本,并逐渐熟悉其动态语言的特性。对于Java...

    Groovy Tip 21 魔幻数组 一

    在探索Groovy语言的魅力时,我们不得不提及它对集合类型处理的独特之处。作为一款旨在提升开发效率与代码可读性的语言,Groovy在数组和列表对象上的操作展现出了令人赞叹的灵活性与便捷性。本篇聚焦于Groovy中的数组...

    java把list集合转化为json所需的jar包

    接下来,我们将介绍如何使用Jackson将List集合转化为JSON: 1. 引入依赖:在你的项目中,需要把这些Jar包添加到类路径中。如果是Maven或Gradle项目,可以在pom.xml或build.gradle文件中添加对应的依赖。 Maven...

Global site tag (gtag.js) - Google Analytics