groovy之list和map方法
2017-11-08 13:57
176 查看
java作为一门强大的系统编程语言,已经在世界各地广泛地应用.groovy是增强java平台的唯一脚本语言,它的语法更
加简洁,能快速开发.
List:
定义list:def list = []
list = [1,2,3,4,5]
list操作:
def list = [1,2,3,4,5]
list[1] //Result: 2
list[-2] //Result: 4
list[1..3] //Result: [2, 3, 4]
list[1..<3] //Result: [2, 3]
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]]
list方法:
[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, 9]].flatten() //Result: [2, 5, 7, 9];克隆并解开下层list
[2,5].get(1) //Result: 5
[2,5].size() //Result: 2
[2,5].isEmpty() //Result: false
[2,5].getAt(1) //Result: 5
[2,5,7].getAt(1..2) //Result: [5, 7]
[2,5,7].getAt(-1) //Result: 7;get()不支持负数参数,getAt()支持
[2,5,7].getAt([1,2]) //Result: [5, 7]
[2,5,7].intersect([5,9,2]) //Result: [5, 2];交集
[2,5,7].pop() //Result: 7
[2,5,7].plus([3,6]) //Result: [2, 5, 7, 3, 6]
[2,5,7,2].minus(2) //Result: [5, 7]
[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 = 3
def 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
reverseEach void reverseEach(Closure clos)反响迭代集合中每个元素。
[1,2,3,4].reverseEach {x->
print x + '-'
}
//4-3-2-1-
sort List sort(Closure clos)按照闭包的返回条件排序。
加简洁,能快速开发.
List:
定义list:def list = []
list = [1,2,3,4,5]
list操作:
def list = [1,2,3,4,5]
list[1] //Result: 2
list[-2] //Result: 4
list[1..3] //Result: [2, 3, 4]
list[1..<3] //Result: [2, 3]
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]]
list方法:
[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, 9]].flatten() //Result: [2, 5, 7, 9];克隆并解开下层list
[2,5].get(1) //Result: 5
[2,5].size() //Result: 2
[2,5].isEmpty() //Result: false
[2,5].getAt(1) //Result: 5
[2,5,7].getAt(1..2) //Result: [5, 7]
[2,5,7].getAt(-1) //Result: 7;get()不支持负数参数,getAt()支持
[2,5,7].getAt([1,2]) //Result: [5, 7]
[2,5,7].intersect([5,9,2]) //Result: [5, 2];交集
[2,5,7].pop() //Result: 7
[2,5,7].plus([3,6]) //Result: [2, 5, 7, 3, 6]
[2,5,7,2].minus(2) //Result: [5, 7]
[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 = 3
def 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
reverseEach void reverseEach(Closure clos)反响迭代集合中每个元素。
[1,2,3,4].reverseEach {x->
print x + '-'
}
//4-3-2-1-
sort List sort(Closure clos)按照闭包的返回条件排序。
相关文章推荐
- Velocity 中遍历 List 和 Map 的方法
- 【Groovy】List对象的transpose和inject方法的使用
- Java遍历Map,List的4种方法
- (8)集合映射:list(@OrderBy)、map(@MapKey、map遍历方法)
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
- 黑马程序员——JAVA基础——集合---概述、Collection中共性方法、List、Map、工具类Collections和Arrays
- map集合的4种遍历方法和List集合的2种遍历和迭代器Iterator的使用
- C++ 标准库 vector list map使用方法
- List / Map / Collections 中其他一些重要方法
- Java集合Set、List、Map的遍历方法
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Java集合Set、List、Map的遍历方法
- Java遍历Map,List的不同方法,并比较其性能
- java中Map和List初始化的两种方法
- Java集合List、Set、Map的遍历方法
- Jackson 处理复杂类型(List,map)两种方法
- Java集合Set、List、Map的遍历方法
- JAVA Map List Set 的contans 方法
- java中实现list或set转map的方法
- 集合Set、List、Map的遍历方法