首先申明下,本文为笔者学习《Groovy 程序设计》的笔记,并加入笔者自己的理解和归纳总结。
1. 列表集合List
List
初始化,直接调用[]
来定义。
复制代码
1
2
3lst = [1, 2, 3, 4, 5, 6] println lst.getClass().name // java.util.ArrayList
[]
操作符获取List
中的元素,index
可以是正数,也可以是负数。
复制代码
1
2
3println lst[1] // 2 println lst[-1] // 6
..
表示连续
复制代码
1
2
3println lst[1..4] // [2, 3, 4, 5] println lst[-1..-4] // [6, 5, 4, 3]
each()
方法实现迭代
复制代码
1
2
3
4total = 0 lst.each { total += it } println total // 21
collect()
方法返回一个集合
复制代码
1
2println lst.collect { it * it } // [1, 4, 9, 16, 25, 36]
查找方法find()
和findAll()
,结果是符合条件的值。而findIndexOf()
返回index
。
复制代码
1
2
3
4println lst.find { it == 3 } // 3 println lst.findAll { it > 3 } // [4, 5, 6] println lst.findIndexOf { it == 3 } // 2
sum()
方法求和
复制代码
1
2println lst.sum() // 21
join()
方法连接元素
复制代码
1
2println lst.join(',') // 1,2,3,4,5,6
<<
表示添加元素。
复制代码
1
2
3
4
5lst = [] lst << "Hello" lst << "World!" println lst // [Hello, World!]
-
表示删除元素。
复制代码
1
2
3lst = ["Hello", "World!", "Welcome", "to", "BeiJing"] println lst - ["Hello", "to"] // [World!, Welcome, BeiJing]
flatten()
方法
复制代码
1
2
3
4
5
6
7
8
9lst = [] lst << ["Hello", "World!"] lst << "Welcome" lst << "to" lst << "BeiJing" println lst // [[Hello, World!], Welcome, to, BeiJing] println lst.flatten() // [Hello, World!, Welcome, to, BeiJing]
在List
每个元素上操作
复制代码
1
2
3lst = ["Hello", "World!", "Welcome", "to", "BeiJing"] println lst*.size() // [5, 6, 7, 2, 7]
2. 字典集合Map
Map
初始化
复制代码
1
2
3person = ["Mike": "ShangHai", "Lily" : "BeiJing", "Jack" : "ShangHai"] println person.getClass().name // java.util.LinkedHashMap
[]
和.
操作符获取Map
中的元素。
复制代码
1
2
3
4println person["Mike"] // ShangHai println person.Lily // BeiJing println person['Lili'] // null
each()
方法实现迭代
复制代码
1
2
3
4
5
6
7
8person.each { entry -> println "$entry.key live in $entry.value" } person.each { name, city -> println "$name live in $city" }
返回
复制代码
1
2
3
4Mike live in ShangHai Lily live in BeiJing Jack live in ShangHai
collect()
方法返回一个集合
复制代码
1
2println person.collect { name, city -> name } // [Mike, Lily, Jack]
查找方法find()
和findAll()
复制代码
1
2
3
4
5
6
7
8
9
10selected = person.find { name, city -> city == "ShangHai" } println selected // Mike=ShangHai selected = person.findAll { name, city -> city == "ShangHai" } println selected // [Mike:ShangHai, Jack:ShangHai]
groupBy()
分组
复制代码
1
2
3
4
5
6
7
8
9groups = person.groupBy { it.value } println groups // [ShangHai:[Mike:ShangHai, Jack:ShangHai], BeiJing:[Lily:BeiJing]] groups.each{ city, persons -> println city for (p in persons) { println "$p.key live in $p.value" } }
返回
复制代码
1
2
3
4
5
6
7[ShangHai:[Mike:ShangHai, Jack:ShangHai], BeiJing:[Lily:BeiJing]] ShangHai Mike live in ShangHai Jack live in ShangHai BeiJing Lily live in BeiJing
最后
以上就是淡然钻石最近收集整理的关于Android Groovy(五) 集合1. 列表集合List2. 字典集合Map的全部内容,更多相关Android内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复