stream
Stream 入門介紹
使用舉例: 對一組List 中的Apple操作。過濾出weight>130的, 然後根據color屬性進行排序,最後只獲得排序後的color.
不使用stream 寫法:
List<Apple> lists = Arrays.asList(new Apple("red",130),new Apple("yellow",140),new Apple("green",150));
List<Apple> highlists = new ArrayList<>();
//過濾出 weight>130 的APPle
for(Apple apple : lists){
if(apple.getWeight()> 130){
highlists.add(apple);
}
}
//根據color 進行排序
highlists.sort((d1,d2)->d1.getColor().compareTo(d2.getColor()));
List<String> nameList = new ArrayList<>();
for(Apple apple : highlists){
nameList.add(apple.getColor());
}
System.out.println(nameList);
使用stream 寫法:
List<String> namelist2 = lists.stream()
.filter(d -> d.getWeight() > 130) //先過濾
.sorted(Comparator.comparing(d -> d.getWeight()))// 排序
// 使用方法推導的模式
// .sorted(Comparator.comparing(Apple::getWeight))
.map(d -> d.getColor())//只獲取名字
// .map(APPle::getColor)
.collect(Collectors.toList());
System.out.println(namelist2);
Stream 可以用來 操作 Collection, source , sequence。
Stream 可以並行處理。
Stream 中 三個重要的概念:
sequence of elements : 對應上面例子中的 Apple.
source :對應上面例子的List<Apple>
Data processing operations : 對應上面的filter, map 等操作。
Stream 是鏈式操作,每個操作都返回一個stream。這種鏈式 也可以是懶載入的。
Stream 流 是一次性的。例如:
這種寫法是會報錯的。stream 只會操作一次。
Stream 與Collection 區別:
Stream 中 的 Data processing operations 分為兩類:
Intermediate operations : 該操作會產生一個stream。 以便往下進項操作。 例如 fiter, map ,limit
Terminal operations : 該操作會中斷 stream。 例如 foreach,collect ,reduce.
Stream 建立
相關文章
- Java-stream(1) Stream基本概念 & Stream介面Java
- 使用dataX-stream2stream/stream2mysql/mysql2mysql/mysql2streamMySql
- Java StreamJava
- Stream流
- node stream
- elysia stream
- Stream APIAPI
- [Javascript] Refactor blocking style code to stream style for fetching the stream dataJavaScriptBloC
- Java 8 StreamJava
- 深入node stream
- 聊聊 Redis StreamRedis
- centos stream 8CentOS
- Java Lambda StreamJava
- restart oracle streamRESTOracle
- ORACLE STREAM ERROROracleError
- Stream瞭解
- Stream流求和
- stream常用操作
- [Java]Stream用法Java
- Node 深入Stream(2)
- Node 深入Stream(1)
- java-Stream流Java
- Fedora 和 CentOS StreamCentOS
- Stream 流模組
- StreamCorruptedException: invalid stream headerExceptionHeader
- stream流各種
- oracle stream pool sizeOracle
- spel和stream todo
- Stream聚合函式函式
- Java Stream 詳解Java
- Java Stream流使用Java
- Nodejs教程24:Stream流NodeJS
- node中的流(stream)
- Node.js Stream(流)Node.js
- Dart | 什麼是StreamDart
- Oracle Stream概述與配置Oracle
- Node.js Stream(流)Node.js
- Java 8 中Stream用法Java