一、Map的定义和访问
复制代码
1
2
3
4
5def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim"] println students['001'] println students."002"
输出结果
复制代码
1
2
3Tom Jack
二、添加元素
复制代码
1
2
3
4
5def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim"] //添加元素 students."005" = "Lily" println students
复制代码
1
2[001:Tom, 002:Jack, 003:Rose, 004:Tim, 005:Lily]
三、遍历Map
复制代码
1
2
3
4
5
6def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim","005":"Lily"] students.each { println "key ="+it.key+" value ="+it.value }
输出结果
复制代码
1
2
3
4
5
6key =001 value =Tom key =002 value =Jack key =003 value =Rose key =004 value =Tim key =005 value =Lily
另外还有几种遍历方式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//用键值对的方式 students.each {def key,def value -> println "key=${key}"+" value=${value}" } //用entry对象的方式 students.each {def student -> println "key=${student.key}"+" value=${student.value}" } //带索引的方式 students.eachWithIndex{ def student,int index-> println "index=${index}"+" key=${student.key}"+" value=${student.value}" } students.eachWithIndex{ def key,def value,int index-> println "index=${index}"+" key=${key}"+" value=${value}" }
四、查找
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim","005":"Lily","006":"Jack"] //单个查询 def result = students.find { return it.value == "Rose"//这里跟前面的list一样,闭包里面有默认参数it是遍历的Map中的元素Entry } println result //嵌套查找 //我们现在需要查找名称是Jack的所有学号 def num = students.findAll {def student-> return student.value == "Jack" }.collect { return it.key } println num.toListString()
我们可以通过collect 集合收集迭代,使用闭包作为变换器将每个元素转换为新值。上面代码的第一步就是通过findAll 查找到所有value是Jack的student,第二步就是通过collect 将第一步查找的结果的student转化为学号key,看看输出结果:
复制代码
1
2
3003=Rose [002, 006]
Groovy 还支持分组查询
复制代码
1
2
3
4
5
6
7
8
9def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim","005":"Lily","006":"Jack"] def result = students.groupBy { return it.value == "Jack"?"group_jack":"group_default" } println result
输出结果
复制代码
1
2[group_default:[001:Tom, 003:Rose, 004:Tim, 005:Lily], group_jack:[002:Jack, 006:Jack]]
五、删除和排序
删除跟List 的API一样,这里不赘述了,排序用法跟List也差不多,只是Map调用sort排序后悔生成一个新的对象,原对象不会有任何改变,所以我们必须用引用接收sort的返回值
最后
以上就是聪慧乐曲最近收集整理的关于Gradle系列知识(三)——Groovy的数据结构Map的全部内容,更多相关Gradle系列知识(三)——Groovy内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复