JDK8新特性(4)—— stream 流
1 對集合元素進行過濾
public class Demo01Stream {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("趙子龍");
list.add("曹孟德");
list.add("金毛獅王");
list.add("令狐飛雪");
list.add("曹小滿");
list.stream().filter(name -> name.startsWith("曹"))
.filter(name -> name.length() == 3)
.forEach(name -> System.out.println(name));
}
}
2 兩種獲取流的方法
java.util.stream.Stream<T>
是JDK8新加入的流介面(不是函式式介面),獲取流的方法:
Collection
集合都可以通過stream
預設方法獲取流;Stream
介面的靜態方法of
可以獲取陣列對應的流。
- Stream 流屬於管道流,只能被消費一次。第一個 Stream 流呼叫完畢,資料就會轉到下一個流上。此時第一個 stream 就會關閉,不能再呼叫方法了。
3 Stream 流中的常用方法
流模型的操作方法可以分為2種:
- 延遲方法:返回值型別仍然是 Stream 介面自身型別的方法,支援鏈式呼叫(除了終結方法外,其餘方法都是延遲方法)
- 終結方法:返回值型別不再是 Stream 介面自身型別的方法,比如
count
,forEach
方法
3.1 foreach
/**
* @Description TODO
* @Author tzb
* @Date 2020/12/1 17:12
* @Version 1.0
**/
public class Demo02Stream_forEach {
public static void main(String[] args) {
// 獲取一個 Stream
final Stream<String> stream = Stream.of("張三", "李四", "王五");
stream.forEach(name -> System.out.println(name));
}
}
3.2 filter
3.3 map
- 將流中的元素對映到另一個流中
public static void main(String[] args) {
// 獲取一個 Stream
final Stream<String> stream = Stream.of("1", "2", "3", "4");
stream
.map(num -> Integer.parseInt(num))
.forEach(num -> System.out.println(num));
}
3.4 count
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
final Stream<Integer> stream = list.stream();
final long count = stream.count();
System.out.println(count);
}
3.5 limit
3.6 skip
3.7 concat
相關文章
- JDK8新特性之Stream流JDK
- JDK8新特性之stream()JDK
- JDK新特性--Stream流JDK
- java8新特性stream流Java
- Java 8 新特性:Stream 流快速入門Java
- JDK8新特性JDK
- java 8 特性——stream流Java
- JDK8的新特性JDK
- Java8 新特性 Stream流操作List集合 (二)Java
- Java8新特性——從Lambda表示式到Stream流Java
- JDK8新特性詳解JDK
- Java 8 新特性 StreamJava
- JAVA 1.8 新特性 StreamJava
- JDK8新特性詳解(二)JDK
- JDK8新特性詳解(一)JDK
- JDK8新特性學習總結JDK
- JDK8新特性-你瞭解多少JDK
- JDK8 新特性學習筆記JDK筆記
- 深入理解 Redis 新特性:StreamRedis
- Java8新特性--Stream APIJavaAPI
- JDK 1.8 新特性學習(Stream)JDK
- JDK8新特性之函式式介面JDK函式
- 專案中常用的JDK8之Stream流,長期補充JDK
- Redis5 的新特性 Redis StreamRedis
- JDK8中Stream使用解析JDK
- Java8新特性探索之Stream介面Java
- Java9新特性系列(Stream改進)Java
- Stream流
- JDK8特性之LocalDateTimeJDKLDA
- Java8 新特性 —— Stream 流式程式設計Java程式設計
- Stream流求和
- jdk8 stream 根據屬性去重JDK
- 流(stream):可讀流篇
- JDK8到JDK17有哪些吸引人的新特性?JDK
- 【Java8新特性】面試官問我:Java8中建立Stream流有哪幾種方式?Java面試
- Java8的新特性--並行流與序列流Java並行
- JDK8到底有啥特性JDK
- stream流各種