1. 程式人生 > >Map更優雅的迭代方式:forEach

Map更優雅的迭代方式:forEach

BiConsumer

用於兩個引數之間進行操作的函式式介面是 BiConsumer。這個函式式介面正好用來操作 Mapkeyvalue。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", "[email protected]");
// 傳統的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); });