文章目录
一、使用 map 集合的 find 方法遍历 map 集合
二、代码示例
一、使用 map 集合的 find 方法遍历 map 集合
使用 map 集合的 find 方法遍历 map 集合 , 传入一个闭包参数 ;
该闭包中 , 可以有 1 11 个参数 , 也可以有 2 22 个参数 ;
如果 有 1 11 个参数 , 则 传递 Entry 键值对 对象 ;
如果有 2 22 个参数 , 则 传递 键 和 值 两个对象 ;
该方法会返回 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; }
二、代码示例
代码示例 :
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 } }
执行结果 :
J=Java