Groovy的list和map
来源:互联网 发布:微信投票软件 编辑:程序博客网 时间:2024/05/19 16:05
转自:http://chenfeng0104.iteye.com/blog/609075
java作为一门强大的系统编程语言,已经在世界各地广泛地应用.groovy是增强java平台的唯一脚本语言,它的语法更 加简洁,能快速开发.
List:
定义list:def list = []
list = [1,2,3,4,5]list操作:
def list = [1,2,3,4,5]
遍历
list[1] //Result: 2list[-2] //Result: 4
[2,5].get(1) //Result: 5
[2,5].getAt(1) //Result: 5
[2,5,7].getAt(-1) //Result: 7;get()不支持负数参数,getAt()支持
pop
[2,5,7].pop() //Result: 7
子集
[2,5,7].getAt(1..2) //Result: [5, 7]
list[1..3] //Result: [2, 3, 4]
list[1..<3] //Result: [2, 3]交集
[2,5,7].intersect([5,9,2]) //Result: [5, 2];交集
增删
list + [6,7] //Result: [1, 2, 3, 4, 5, 6, 7]
list - [4,5,6] //Result: [1, 2, 3]list << 6 //Result: [1, 2, 3, 4, 5, 6]
list << [6,7] //Result: [1, 2, 3, 4, 5, 6, [6, 7]]
[2,5].add(7) //Result: true; list = [2, 5, 7]
[2,5].add(1,9) //list = [2, 7, 5]
[2,5].add([7,9]) //Result: [2, 5, [7, 9]]
[2,5,7].plus([3,6]) //Result: [2, 5, 7, 3, 6]
[2,5,7,2].minus(2) //Result: [5, 7]
解开下层list
[2, 5, [7, 9]].flatten() //Result: [2, 5, 7, 9];克隆并解开下层list其他方法
[2,5].size() //Result: 2[2,5].isEmpty() //Result: false
删除
[2,5,7].remove(1) //Result: 5; list = [2, 7]
反转
[2,7,5].reverse() //Result: [5, 7, 2]
排序
[2,7,5].sort() //Result: [2, 5, 7]Map:
定义Map:
def map = [:]
map = ['name':'Bruce', 'age':27]键被解释成字符串:
def x = 3def y = 5
def map = [x:y, y:x] //Result: ["x":5, "y":3]
如果要把值作为键,像下面这样:
def city = 'shanghai'
map."${city}" = 'china'
map.shanghai //Result: "china"
map操作:
def map = [3:56, 'name':'Bruce']def a = 'name'
map.name //Result: "Bruce"
map['name'] //Result: "Bruce"
map[a] //Result: "Bruce"
map[3] //Result: 56
以下访问是错误的,会抛出异常
map[name]
map.3
map方法:
def map = ['name':'Bruce', 'age':27]map.containsKey('name') //Result: true
map.get('name') //Result: "Bruce"
map.get('weight', '60kg') //Result: "60kg";会把key:value加进去
map.getAt('age') //Result: 27
map.keySet() //Result: [name, age, weight]
map.put('height', '175') //Result: ["name":"Bruce", "age":27, "weight":"60kg", "height":"175"]
map.values().asList() //Result: ["Bruce", 27, "60kg", "175"]
map.size() //Result: 4
下列方法可以应用于范围、List和Map(inject和reverseEach方法只适合List和范围)
each void each(Closure clos)迭代集合中每个元素。find List find(Closure clos)返回集合中第一个符合条件的元素。
findAll List findAll(Closure clos)返回集合中所有符合条件的元素。
collect List collect(Closure clos)返回计算后的列表。
collect List collect(Collection col, Closure clos)返回计算后的列表,同时把返回值保存到col集合里。
any boolean any(Closure clos)集合中有一个符合条件即返回true,否则返回false。
every boolean every(Closure clos)集合中所有都符合条件即返回true,否则返回false。
findIndexOf int findIndexOf(Closure clos)返回第一个符合条件元素在集合中的索引值(从0开始计算)。
findLastIndexOf int findLastIndexOf(Closure clos)返回最后一个符合条件元素在集合中的索引值(从0开始计算)。
inject Object inject(Object value, Closure clos)返回调用列表和参数的计算值。
[1,2,3,4].inject(5) {x,y->
x + y
}
//Result: 15
public class TestListInject {static main(args){def a = [1, 2, 3, 4].inject(5) {x,y->println "x:${x},y:${y}"x + y/*x:5,y:1x:6,y:2x:8,y:3x:11,y:415*/}println a}}
reverseEach void reverseEach(Closure clos)反转迭代集合中每个元素。
[1,2,3,4].reverseEach {x->
print x + '-'
}
//4-3-2-1-
sort List sort(Closure clos)按照闭包的返回条件排序。
- Groovy的list和map
- groovy之list和map方法
- 图书馆借阅是否借阅小案例(groovy中list和map的使用)
- groovy 字符串 数字 list map
- 【Groovy手札】Groovy的List
- Groovy的一些Map
- groovy的集合 Map
- groovy 的集合 List
- groovy 循环List<Map<String, Object>>
- Groovy中map和数组的基本使用
- 【Groovy】List对象的transpose和inject方法的使用
- Groovy探索之Gpath和List的结合 更加Groovy风格的代码
- groovy list transpose和each的特殊用法
- List和Map的区别
- Map和List的区别
- List和Map的区别
- List 和 Map 的遍历
- groovy Map
- SQL SERVER 2008 R2序列号
- java中三种简单的加密
- 解题报告-HDU 3662 (三维凸包)
- Activity界面的数字时间表
- Android Handler
- Groovy的list和map
- posix 多线程有感--线程
- find 和 grep 的结合使用
- Hadoop命令操作
- 获取 ssh 公钥命令
- 友元简介:友元函数,友元类和友元成员函数
- appledoc相关内容汇总(非原创)
- 【linux】——ubuntu server 12.04重启不能上网的问题
- IIS7 FTP 设置