概述
一、Map的定义和访问
def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim"]
println students['001']
println students."002"
输出结果
Tom
Jack
二、添加元素
def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim"]
//添加元素
students."005" = "Lily"
println students
[001:Tom, 002:Jack, 003:Rose, 004:Tim, 005:Lily]
三、遍历Map
def students = ["001":"Tom","002":"Jack","003":"Rose","004":"Tim","005":"Lily"]
students.each {
println "key ="+it.key+" value ="+it.value
}
输出结果
key =001 value =Tom
key =002 value =Jack
key =003 value =Rose
key =004 value =Tim
key =005 value =Lily
另外还有几种遍历方式
//用键值对的方式
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}"
}
四、查找
def 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,看看输出结果:
003=Rose
[002, 006]
Groovy 还支持分组查询
def 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
输出结果
[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的数据结构Map所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复