原 Java8 - Map更优雅的迭代方式:forEach

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.(对该映射中的每个条目执行给定的操作,直到所有条目已被处理或动作抛出异常为止。)

package com.mujiachao.properties;

import java.util.function.BiConsumer;

public class Test implements BiConsumer {
    @Override
    public void accept(Object o, Object o2) {
        
    }
}
package com.mujiachao.properties;

import java.util.HashMap;
import java.util.Map;

public class Test {
    public static void main(String[] args) {
        Map infoMap = new HashMap<>();
        infoMap.put("name", "Zebe");
        infoMap.put("site", "www.zebe.me");
        infoMap.put("email", "[email protected]");
        // 传统foreach 
        for (Map.Entry entry : infoMap.entrySet()) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
        // JDK8的迭代方式 
        infoMap.forEach((key, value) -> {
            System.out.println(key + ":" + value);
        });
    }
}

你可能感兴趣的:(原 Java8 - Map更优雅的迭代方式:forEach)