ava作为一门强大的系统编程语言,已经在世界各地广泛地应用.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)按照闭包的返回条件排序。
分享到:
相关推荐
在Java编程语言中,`List`、`Map`是两种非常重要的数据结构,它们在处理序列数据和键值对数据时发挥着关键作用。这里我们将深入探讨`ArrayList`、`Vector`、`HashMap`和`Hashtable`这四种数据结构的用法以及多种遍历...
Groovy中的列表(List)和映射(Map)使用非常直观。列表可以通过下标访问,映射则通过键值对操作: ```groovy List list = [1, 2, 3] Map map = [key1: 'value1', key2: 'value2'] println list[0] // 输出:...
Groovy的列表支持链式操作,如`list.each{println it}`,这会遍历列表并对每个元素执行指定的操作。映射可以通过键值对进行操作,如`map.each{k, v -> println "Key: $k, Value: $v"}`。 Groovy还引入了GString,这...
3. 集合与闭包:熟悉Groovy的List、Map等集合操作,以及强大的闭包特性。 4. 文件I/O和网络编程:学习如何使用Groovy进行文件操作和网络通信。 5. 测试与调试:掌握Spock测试框架,进行单元测试和集成测试。 6. 深入...
Groovy支持多种集合数据类型,如列表(List)、映射(Map)等,这些数据类型的使用方式与Java相似,但Groovy提供了更多的语法糖,使得代码更加简洁易读。 #### 六、元编程 Groovy强大的元编程特性使得开发者能够...
- Map和List的简写:Groovy可以用`[key1: value1, key2: value2]`创建Map,用`[value1, value2, ...]`创建List。 3. **Groovy的集合操作**: - 集合的增强操作:如`each`、`collect`、`grep`等,提供了一系列便捷...
- **数据类型**:Groovy支持基本的数据类型,如数字、字符串、布尔值等,并且引入了新的集合类型,如列表(List)和映射(Map)。 - **表达式与语句**:Groovy中的表达式和语句与Java类似,但更加灵活。例如,Groovy...
Groovy的集合类型包括List、Map和Range等,这些类型在Groovy中被扩展以支持更多的操作。例如,List在Groovy中可以像Python一样使用负索引,Range则可以通过简单的范围表达式生成序列。这些集合类型在Groovy中都是...
Groovy 提供了对集合的强大支持,包括 `List` 和 `Map` 的多种操作方式。 **1. List** - **定义与访问** - Groovy 中的 `List` 可以包含不同类型的元素。 ```groovy list = [1, 2, 'hello', new java.util.Date...
- **列表和映射的本地语法**:Groovy提供了更加简洁的语法来表示列表(List)和映射(Map)。 - **Groovy标记**: 支持多种标记语言,如XML、HTML等。 - **GroovyPath表达式语言**:类似于XPath,用于处理XML文档。 - **...
总的来说,Groovy的学习涵盖了基础的数字和字符串操作,进阶的List、String、闭包、Map和Range的使用,以及函数的定义。通过这些知识点,你可以开始编写简单的Groovy脚本,并逐渐熟悉其动态语言的特性。对于Java...
3. **列表和映射**:Groovy中的数组通常用List表示,可以用`[]`创建,而Map则用`[key1: value1, key2: value2]`创建,非常直观。 4. **GString和字符串操作**:Groovy的GString可以包含表达式,如`${expression}`,...
- **集合**:Groovy支持Java的集合类型,如List和Map。List类型类似于数组,可以存储有序的元素列表;Map类型用于存储键值对,提供了灵活的数据结构。Groovy还引入了Range类型,用于表示一个连续的整数或字符序列。 ...
映射的创建同样简洁,如`[a: 1, b: 2]`,并可以直接通过键访问值,如`map['a']`和`map.b`。范围表达式如`'a'..'z'`和`0..提供了处理连续序列的便捷方式。 在正则表达式方面,Groovy支持Java的正则匹配,如`"Hello ...
Groovy中的集合包括`List`和`Map`,这些集合类型与Java中的相应类型兼容。 ##### 1. List - **声明方式**: ```groovy list = [1, 2, 'hello', new java.util.Date()] ``` - **特点**: - 列表中的元素可以是...