Groovy使用List集合
- 获取List集合中的元素
def lst = [1,3,4,1,8,9,2,6]
println lst[-1]
println lst[-2] 输出结果:
输出:
6
2 - 使用Range(范围)对象获得集合中连续的几个值
//从左至右取值
def lst = [1,3,4,1,8,9,2,6]
println lst[2..5] 输出结果:
[4, 1, 8, 9] //从右至左取值
def lst = [1,3,4,1,8,9,2,6]
println lst[-1..-4]输出结果:
[6, 2, 9, 8] - 迭代ArrayList
//从左至右顺序迭代
lst = [1,3,4,1,8,9,2,6]
lst.each{ print "${it}," }
输出结果:
1,3,4,1,8,9,2,6, //从右至左反方向迭代
lst = [1,3,4,1,8,9,2,6]
lst.each{ print "${it}," }
输出结果:
6,2,9,8,1,4,3,1, //迭代中显示索引
def lst = [1,3,4,1,8,9,2,6]
lst.eachWithIndex{ it,i -> print("${i},") }
输出结果:
0,1,2,3,4,5,6,7, - 使用List的collect方法
//查找list元素
/*find()会找到第一次出现的匹配对象,它只会迭代到闭包返回true为止。已得到true,find方法就会停止迭代,并将当前的元素返回。如果遍历结束也没得到true,则返回null。*/
lst = [1,3,4,1,8,9,2,6]
println lst.find{ it > 4 }
输出结果:
8 //查找list元素,返回所有符合条件元素
lst = [1,3,4,1,8,9,2,6]
println lst.findAll{ it > 4 }
输出结果:
[8,9,6] //查找list元素,返回元素下标
lst = [1,3,4,1,8,9,2,6]
println lst.findAllIndexOf{ it == 4 }
输出结果:
2 - 使用List的排序
def ids = [5,6,3,7,1,4,9]
//可以认为是 Comparator 排序
ids.sort { a,b->
return -a.compareTo(b)
}
println ids
//自然排序
ids.sort();
println ids 输出结果:
[9, 7, 6, 5, 4, 3, 1]
[1, 3, 4, 5, 6, 7, 9] - list去重
lst = [1,3,1,1,8,9,2,6]
println lst.unique()
输出结果:
[1, 3, 8, 9, 2, 6] - 将list元素链接成一个字符串
lst = ['顺丰海淘','就是好','只卖正品']
println lst.join('')
println lst.join(',')
输出结果:
顺丰海淘就是好只卖正品
顺丰海淘,就是好,只卖正品 - 元素替换
lst = ['顺丰海淘','就是好','只卖正品']
lst[0] = ['sfht','.com']
println lst.flatten()
输出结果:
[sfht, .com, 就是好, 只卖正品] - +/-操作符
lst = ['顺丰海淘','就是好','只卖正品']
println lst - ['就是好']
输出结果:
[顺丰海淘, 只卖正品] lst = ['顺丰海淘','就是好','只卖正品']
println lst + ['你说呢']
输出结果:
[顺丰海淘, 就是好, 只卖正品, 你说呢] - list元素拉平
lst = [[1,2],'顺丰海淘','就是好','只卖正品']
println lst.flatten()
输出结果:
[1,2,'顺丰海淘','就是好','只卖正品']
Groovy使用List集合的更多相关文章
- 30分钟groovy快速入门并掌握(ubuntu 14.04+IntelliJ 13)
本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员.了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合.内置正则表达式和闭包. ...
- 新学习的语言Groovy
什么是 Groovy? Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同.在编写新应用 ...
- Groovy常见语法汇总
一.groovy是什么 简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中. 作为跑在JVM中的另一种语言,groovy语法与 Java 语言的语法很相似.同时,G ...
- [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure
转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...
- Java 下一代: 函数式编码风格——Groovy、Scala 和 Clojure 共享的函数结构及其优势
原文地址 本文内容 命令式处理 函数式处理 函数式编程的优势 所有 Java 下一代语言都包括函数式编程结构,让您可以从一个更高的抽象层面来思考问题.然而,语言间术语的不同使得难以看到类似的结构.本期 ...
- Groovy 读取json文件,并用gson反序列化为List集合
Groovy 读取json文件,并用gson反序列化 package com.bicycle.util import bicycle_grails.StationInfo import com.goo ...
- groovy集合
groovy集合可以直接在语言中使用,因为它默认已经导入包了. 不需要初始化对象,也不需要专门的类. 集合是groovy语言本地成员.Groovy语法提供了本地列表和相应的映射. 每个Groovy集合 ...
- Groovy系列(4)- Groovy集合操作
Groovy集合操作 Lists List 字面值 您可以按如下所示创建列表. 请注意,[]是空列表表达式 def list = [5, 6, 7, 8] assert list.get(2) == ...
- swift - 字典和集合
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #4dbf56 } p.p2 { margin: 0.0px 0. ...
随机推荐
- linux下不同tomcat使用不同的jdk版本
环境:Linux tomcat7 使用jdk7 tomcat 8使用jdk8 最近写好了一个程序,需要部署在测试机器上,这个测试机器上已经有了在运行的tomcat7, 我这个程序要求使用tomcat8 ...
- cratedb 集群 docker-compose 安装试用
关于集群的配置说明可以参考官方文档,或者es 文档 详细代码参考 https://github.com/rongfengliang/cratedb-cluster-docker 参考配置 docker ...
- 把CDLinux制作成U盘启动
因为用下了CDlinux,本来想在虚拟机上运行的.发现虚拟机跑的时候无法识别集成的笔记本网卡,坑爹啊.后来想刻碟的,发现手头上还没有现成的东西,光驱是只读的,又要用到光驱,于是想到了了用U盘,正好手上 ...
- SonarQube使用教程
SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,本文将会介绍一下这个工具的安装.配置以及使用. 一.SonarQube的安装使用: 下载地址:http://ww ...
- 排列算法(reverse...rotate...next_permutation)
#include <iostream> #include <algorithm> #include <cstring> using namespace std; i ...
- 02 - Unit07:显示笔记下拉菜单、笔记的分享功能、笔记的删除功能
显示笔记下拉菜单 笔记的分享功能 发送Ajax请求 绑定事件:绑定分享按钮单击事件 参数获取:笔记ID 发送请求:/share/add.do 服务器处理 ShareController ShareSe ...
- 黄聪:WordPress实现HTML5预加载
WordPress实现HTML5预加载方法很简单,把下面代码: <?php if (is_archive() && ($paged > 1) && ($pa ...
- 各种装饰器demo及优化
#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/5/28 14:06# @File : lianxi.py ## impor ...
- win10 svn commit无响应
只是发现其中的一个原因,发现.cs代码文件图标变红了,默认是用Code Writer打开,和SVN可能是冲突了,解决方式是用Code Writer打开一下.cs文件就可以了,原因可能是不打开一次Cod ...
- ModelAttribute注解使用与spring重定向传参
@ModelAttribute可以用于修饰controller里的方法和参数,将被修饰的对象的值绑定到指定名称的属性里.当修饰方法时,方法返回的值会在该controller里每个访问处理前绑定一次.修 ...