1. 获取List集合中的元素

    1. def lst = [1,3,4,1,8,9,2,6]
    2. println lst[-1]
    3. println lst[-2]
    4.  
    5. 输出结果:
    6. 输出:
    7. 6
    8. 2
  2. 使用Range(范围)对象获得集合中连续的几个值
    1. //从左至右取值
      def lst = [1,3,4,1,8,9,2,6]
    2. println lst[2..5]
    3.  
    4. 输出结果:
    5. [4, 1, 8, 9]
    6.  
    7. //从右至左取值
      def lst = [1,3,4,1,8,9,2,6]
    8. println lst[-1..-4]
    1. 输出结果:
    2. [6, 2, 9, 8]
  3. 迭代ArrayList
    1. //从左至右顺序迭代
    2. lst = [1,3,4,1,8,9,2,6]
    3. lst.each{ print "${it}," }
    4. 输出结果:
    5. 1,3,4,1,8,9,2,6,
    6.  
    7. //从右至左反方向迭代
    8. lst = [1,3,4,1,8,9,2,6]
    9. lst.each{ print "${it}," }
    10. 输出结果:
    11. 6,2,9,8,1,4,3,1,
    12.  
    13. //迭代中显示索引
    14. def lst = [1,3,4,1,8,9,2,6]
    15. lst.eachWithIndex{ it,i -> print("${i},") }
    16. 输出结果:
    17. 0,1,2,3,4,5,6,7,
  4. 使用List的collect方法
    1. //查找list元素
    2. /*find()会找到第一次出现的匹配对象,它只会迭代到闭包返回true为止。已得到true,find方法就会停止迭代,并将当前的元素返回。如果遍历结束也没得到true,则返回null。*/
    3. lst = [1,3,4,1,8,9,2,6]
    4. println lst.find{ it > 4 }
    5. 输出结果:
    6. 8
    7.  
    8. //查找list元素,返回所有符合条件元素
    9. lst = [1,3,4,1,8,9,2,6]
    10. println lst.findAll{ it > 4 }
    11. 输出结果:
    12. [8,9,6]
    13.  
    14. //查找list元素,返回元素下标
    15. lst = [1,3,4,1,8,9,2,6]
    16. println lst.findAllIndexOf{ it == 4 }
    17. 输出结果:
    18. 2
  5. 使用List的排序

    1. def ids = [5,6,3,7,1,4,9]
    2. //可以认为是 Comparator 排序
    3. ids.sort { a,b->
    4. return -a.compareTo(b)
    5. }
    6. println ids
    7. //自然排序
    8. ids.sort();
    9. println ids
    10.  
    11. 输出结果:
    12. [9, 7, 6, 5, 4, 3, 1]
    13. [1, 3, 4, 5, 6, 7, 9]
  6. list去重
    1. lst = [1,3,1,1,8,9,2,6]
    2. println lst.unique()
    3. 输出结果:
    4. [1, 3, 8, 9, 2, 6]
  7. 将list元素链接成一个字符串
    1. lst = ['顺丰海淘','就是好','只卖正品']
    2. println lst.join('')
    3. println lst.join(',')
    4. 输出结果:
    5. 顺丰海淘就是好只卖正品
    6. 顺丰海淘,就是好,只卖正品
  8. 元素替换
    1. lst = ['顺丰海淘','就是好','只卖正品']
    2. lst[0] = ['sfht','.com']
    3. println lst.flatten()
    4. 输出结果:
    5. [sfht, .com, 就是好, 只卖正品]
  9. +/-操作符
    1. lst = ['顺丰海淘','就是好','只卖正品']
    2. println lst - ['就是好']
    3. 输出结果:
    4. [顺丰海淘, 只卖正品]
    5.  
    6. lst = ['顺丰海淘','就是好','只卖正品']
    7. println lst + ['你说呢']
    8. 输出结果:
    9. [顺丰海淘, 就是好, 只卖正品, 你说呢]
  10. list元素拉平
    1. lst = [[1,2],'顺丰海淘','就是好','只卖正品']
    2. println lst.flatten()
    3. 输出结果:
    4. [1,2,'顺丰海淘','就是好','只卖正品']

Groovy使用List集合的更多相关文章

  1. 30分钟groovy快速入门并掌握(ubuntu 14.04+IntelliJ 13)

    本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员.了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合.内置正则表达式和闭包. ...

  2. 新学习的语言Groovy

    什么是 Groovy? Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同.在编写新应用 ...

  3. Groovy常见语法汇总

    一.groovy是什么 简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中. 作为跑在JVM中的另一种语言,groovy语法与 Java 语言的语法很相似.同时,G ...

  4. [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure

    转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...

  5. Java 下一代: 函数式编码风格——Groovy、Scala 和 Clojure 共享的函数结构及其优势

    原文地址 本文内容 命令式处理 函数式处理 函数式编程的优势 所有 Java 下一代语言都包括函数式编程结构,让您可以从一个更高的抽象层面来思考问题.然而,语言间术语的不同使得难以看到类似的结构.本期 ...

  6. Groovy 读取json文件,并用gson反序列化为List集合

    Groovy 读取json文件,并用gson反序列化 package com.bicycle.util import bicycle_grails.StationInfo import com.goo ...

  7. groovy集合

    groovy集合可以直接在语言中使用,因为它默认已经导入包了. 不需要初始化对象,也不需要专门的类. 集合是groovy语言本地成员.Groovy语法提供了本地列表和相应的映射. 每个Groovy集合 ...

  8. Groovy系列(4)- Groovy集合操作

    Groovy集合操作 Lists List 字面值 您可以按如下所示创建列表. 请注意,[]是空列表表达式 def list = [5, 6, 7, 8] assert list.get(2) == ...

  9. swift - 字典和集合

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #4dbf56 } p.p2 { margin: 0.0px 0. ...

随机推荐

  1. 《DSP using MATLAB》Problem 2.17

    1.代码: %% ------------------------------------------------------------------------ %% Output Info abo ...

  2. 白帽子讲web安全——一个安全解决方案的诞生细节

    1.白帽子:做安全的人.主要做的事,防御,是制定一套解决攻击的方案.而不是只是解决某个漏洞. 2.黑帽子:现在说的黑客.让web变的不安全的人.利用漏洞获取特权.主要做的事,攻击,组合各种方法利用漏洞 ...

  3. MD文件

    了解一个项目,恐怕首先都是通过其Readme文件了解信息.如果你以为Readme文件都是随便写写的那你就错了.github,oschina git gitcafe的代码托管平台上的项目的Readme. ...

  4. hibernate之xml映射文件关系维护,懒加载,级联

    一:关系维护 --->inverse默认值false,表示不放弃关系的维护.   --->inverse="true"配置在那一端,表示那一端xml对应的po放弃关系的 ...

  5. bzoj2875随机数生成器

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2875 矩阵乘裸题. 如果直接乘的话会爆long long,所以用加法代替乘,过程中不断取模. ...

  6. 访问https请求出现警告,去掉警告的方法

    在顶部引多一个包即可 from requests.packages.urllib3.exceptions import InsecureRequestWarning,InsecurePlatformW ...

  7. 031:Cetus sharding

    目录 一.主机环境 二.搭建环境 1.准备环境 三.Cetus安装 1.下载包和安装依赖包 2.Cetus安装 1.安装说明 2.安装实施 四.Cetus配置 1.创建和修改配置文件 2.启动cetu ...

  8. 二.jQuery源码解析之构建jQuery之构建函数jQuery的7种用法

    一:$(selectorStr[,限制范围]),接受一个选择器(符合jQuery规范的字符串),返回一个jQuery对象; 二:$(htmlStr[,文档对象]),$(html[,json对象])传入 ...

  9. Spring源码分析之——导入spring-framework源代码到Eclipse

    本人最近想要研究spring的源代码,但当要导入spring sub project到Eclipse里面去的时候遇到了不少麻烦(其实都怪自己想当然). 找到spring-framework的gitHu ...

  10. Java各种Utils小结

    原文地址:http://trinea.iteye.com/blog/1533616 最新内容建议直接访问原文:Android常用的工具类 主要介绍总结的Android开发中常用的工具类,大部分同样适用 ...