BiConsumer
用于两个参数之间进行操作的函数式接口是 BiConsumer。这个函数式接口正好用来操作 Map 的 key 和 value。JDK8强化了针对 Map 类的迭代方式,新增了一个默认方法 forEach,它接收一个 BiConsumer 函数。JDK给出的描述如下:
Performs the given action for each entry in this map until all entries have been processed or the action throws an exception.(对该映射中的每个条目执行给定的操作,直到所有条目已被处理或动作抛出异常为止。)
下面是代码例子:
// 创建一个Map Map<String, Object> infoMap = new HashMap<>(); infoMap.put("name", "Zebe"); infoMap.put("site", "www.zebe.me"); infoMap.put("email", "zebe@vip.qq.com"); // 传统的Map迭代方式 for (Map.Entry<String, Object> entry : infoMap.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue()); } // JDK8的迭代方式 infoMap.forEach((key, value) -> { System.out.println(key + ":" + value); });