我是靠谱客的博主 淡然钻石,这篇文章主要介绍Android Groovy(五) 集合1. 列表集合List2. 字典集合Map,现在分享给大家,希望可以做个参考。

首先申明下,本文为笔者学习《Groovy 程序设计》的笔记,并加入笔者自己的理解和归纳总结。

1. 列表集合List

List初始化,直接调用[]来定义。

复制代码
1
2
3
lst = [1, 2, 3, 4, 5, 6] println lst.getClass().name // java.util.ArrayList

[]操作符获取List中的元素,index可以是正数,也可以是负数。

复制代码
1
2
3
println lst[1] // 2 println lst[-1] // 6

..表示连续

复制代码
1
2
3
println lst[1..4] // [2, 3, 4, 5] println lst[-1..-4] // [6, 5, 4, 3]

each()方法实现迭代

复制代码
1
2
3
4
total = 0 lst.each { total += it } println total // 21

collect()方法返回一个集合

复制代码
1
2
println lst.collect { it * it } // [1, 4, 9, 16, 25, 36]

查找方法find()findAll(),结果是符合条件的值。而findIndexOf()返回index

复制代码
1
2
3
4
println lst.find { it == 3 } // 3 println lst.findAll { it > 3 } // [4, 5, 6] println lst.findIndexOf { it == 3 } // 2

sum()方法求和

复制代码
1
2
println lst.sum() // 21

join()方法连接元素

复制代码
1
2
println lst.join(',') // 1,2,3,4,5,6

<<表示添加元素。

复制代码
1
2
3
4
5
lst = [] lst << "Hello" lst << "World!" println lst // [Hello, World!]

-表示删除元素。

复制代码
1
2
3
lst = ["Hello", "World!", "Welcome", "to", "BeiJing"] println lst - ["Hello", "to"] // [World!, Welcome, BeiJing]

flatten()方法

复制代码
1
2
3
4
5
6
7
8
9
lst = [] 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
3
lst = ["Hello", "World!", "Welcome", "to", "BeiJing"] println lst*.size() // [5, 6, 7, 2, 7]

2. 字典集合Map

Map初始化

复制代码
1
2
3
person = ["Mike": "ShangHai", "Lily" : "BeiJing", "Jack" : "ShangHai"] println person.getClass().name // java.util.LinkedHashMap

[].操作符获取Map中的元素。

复制代码
1
2
3
4
println person["Mike"] // ShangHai println person.Lily // BeiJing println person['Lili'] // null

each()方法实现迭代

复制代码
1
2
3
4
5
6
7
8
person.each { entry -> println "$entry.key live in $entry.value" } person.each { name, city -> println "$name live in $city" }

返回

复制代码
1
2
3
4
Mike live in ShangHai Lily live in BeiJing Jack live in ShangHai

collect()方法返回一个集合

复制代码
1
2
println person.collect { name, city -> name } // [Mike, Lily, Jack]

查找方法find()findAll()

复制代码
1
2
3
4
5
6
7
8
9
10
selected = 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
9
groups = 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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(221)

评论列表共有 0 条评论

立即
投稿
返回
顶部