Map更優雅的迭代方式:forEach
阿新 • • 發佈:2018-12-15
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", "[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);
});