【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )
【摘要】
文章目录
一、使用 map 集合的 find 方法遍历 map 集合二、代码示例
一、使用 map 集合的 find 方法遍历 map 集合
使用 map 集合的 ...
一、使用 map 集合的 find 方法遍历 map 集合
使用 map 集合的 find 方法遍历 map 集合 , 传入一个闭包参数 ;
该闭包中 , 可以有 1 1 1 个参数 , 也可以有 2 2 2 个参数 ;
- 如果 有 1 1 1 个参数 , 则 传递 Entry 键值对 对象 ;
- 如果有 2 2 2 个参数 , 则 传递 键 和 值 两个对象 ;
该方法会返回 map 集合中 第一个查找到的 Entry 键值对对象 , 该对象中包含一个 键 和 值 ;
map 集合的 find 方法 函数原型 :
/**
* 查找与闭包条件匹配的第一个条目。
* 如果闭包包含两个参数,则传递入口键和值。
* 如果闭包包含一个参数,则映射。已传递Entry对象。
* <pre class="groovyTestCase">assert [a:1, b:3].find { it.value == 3 }.key == "b"</pre>
*
* @param self map 集合
* @param closure 闭包条件 , 有 1 或 2 个参数
* @return 返回找到的第一个对象
* @since 1.0
*/
public static <K, V> Map.Entry<K, V> find(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<?> closure) {
BooleanClosureWrapper bcw = new BooleanClosureWrapper(closure);
for (Map.Entry<K, V> entry : self.entrySet()) {
if (bcw.callForMap(entry)) {
return entry;
}
}
return null;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
二、代码示例
代码示例 :
class Test {
static void main(args) {
// 创建键值对
// 键 Key 可以不使用引号 , 可以使用单引号 '' , 也可以使用双引号 ""
def map = [J:"Java", "K":"Kotlin", 'G':"Groovy"]
// 遍历 map 集合
def entry = map.find { key, value ->
value =~ "a"
}
// 打印查找结果
println entry
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
执行结果 :
J=Java
- 1
文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。
原文链接:hanshuliang.blog.csdn.net/article/details/122182738
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)