
**Java8 forEach**是一個工具方法用于遍歷集合,比如: (list, set or map) 和stream流(java8 提供的另外一個特性),然后對集合中的每一個元素執行特定的操作。
## 1. Java 8 forEach 方法
#### 1.1. Iterable.forEach()方法
下面的代碼片段顯示了Iterable接口forEach方法的默認實現。我們可以通過這個方法去遍歷除了Map之外的所有集合類。

上面的方法對Iterable的每個元素執行操作,直到所有元素都已處理或該操作引發異常。“ action”用來表示一個接受單個輸入參數且不返回結果的操作。它是“Consumer”接口的一個實例。

我們可以通過實現Consumer接口的accept方法,實現自己對集合元素需要做的自定義操作。比如:下面的代碼是實現集合中字符串轉大寫并打印出來的操作。

#### 1.2. Map.forEach()
Map.forEach()方法對map中的每一個entry執行特定的操作,直到所有map的entry被處理完成或者拋出異常。

使用Map.forEach() 方法

與List等集合類遍歷類似,我們可以自定義一個biconsumer action去處理key-value鍵值對.

Program output.
~~~
Key is : A
Value is : 1
Key is : B
Value is : 2
Key is : C
Value is : 3
~~~
## 2. 使用forEach遍歷 List的例子
下面的代碼使用forEach遍歷 List中的所有偶數。

輸出:
~~~
2
4
~~~
## 3. 使用forEach 遍歷 Map
We already saw above program to iterate over all entries of a[HashMap](https://howtodoinjava.com/java-hashmap/)and perform an action.
We can also iterate over map keys and values and perform any action on all elements.
Java 8 forEach map entries

Program output.
~~~
A=1
B=2
C=3
A
B
C
1
2
3
~~~
- 前言
- 1.lambda表達式會用了么
- 2.初識Stream-API
- 3.Stream的filter與謂語邏輯
- 4.Stream管道流的map操作
- 5.Stream的狀態與并行操作
- 6.Stream性能差?不要人云亦云
- 7.像使用SQL一樣排序集合
- 8.函數式接口Comparator
- 9.Stream查找與匹配元素
- 10.Stream集合元素歸約
- 11.StreamAPI終端操作
- 12.java8如何排序Map
- Stream流逐行文件處理
- java8-forEach(持續發布中)
- 筆者其它作品推薦
- vue深入淺出系列
- 手摸手教你學Spring Boot2.0
- Spring Security-JWT-OAuth2一本通
- 實戰前后端分離RBAC權限管理系統
- 實戰SpringCloud微服務從青銅到王者