Java流簡介
Java 8中引入了Stream API,用於處理對象的集合。流是支持各種方法的對象序列,可以對這些方法進行流水線處理以產生所需的結果。
Java流的功能是–
- 流不是數據結構,而是從集合,數組或I / O通道獲取輸入。
- 流不改變原始數據結構,它們僅根據流水線方法提供結果。
- 每個中間操作都是延遲執行的,並因此返回一個流,因此可以對各種中間操作進行流水線處理。終端操作標記流的結尾並返回結果。
流上的不同操作-
中級操作:
map: map方法用於返回一個流,該流包含將給定功能應用於此流的元素的結果。
List number = Arrays.asList(2,3,4,5); List square = number.stream().map(x->x*x).collect(Collectors.toList());
filter: filter方法用於根據作為參數傳遞的謂詞選擇元素。
List names = Arrays.asList("Reflection","Collection","Stream");
List result = names.stream().filter(s->s.startsWith("S")).collect(Collectors.toList());
3. **sorted:** sorted方法用於對流進行排序。
List names = Arrays.asList("Reflection","Collection","Stream");
List result = names.stream().sorted().collect(Collectors.toList());
**終端機操作:**
1. **collect:** collect方法用於返回對流執行的中間操作的結果。
List number = Arrays.asList(2,3,4,5,3);
Set square = number.stream().map(x->x*x).collect(Collectors.toSet());
2. **forEach:** forEach方法用於迭代流的每個元素。
List number = Arrays.asList(2,3,4,5);
number.stream().map(x->x*x).forEach(y->System.out.println(y));
3. **reduce:** reduce方法用於將流的元素減少為單個值。
reduce方法將BinaryOperator用作參數。
List number = Arrays.asList(2,3,4,5);
int even = number.stream().filter(x->x%2==0).reduce(0,(ans,i)-> ans+i);
```
** 結論**
在本文中,我們簡要介紹了Java流-絕對是Java 8中最有趣的功能之一。
有許多使用Streams的更高級的示例。本文的目的只是為了快速,實用地介紹您可以使用該功能開始做些什麼,並以此作為探索和進一步學習的起點。