Stream 是 Java8 中處理集合的關鍵抽象概念,它可以指定你希望對集合進⾏的操作,可以執⾏⾮常複雜的查找、過濾和映射資料
等操作。使⽤Stream API 對集合資料進⾏操作,就類似于使⽤ SQL 執⾏的資料庫查詢。也可以使⽤ Stream API 來并⾏執⾏操作。簡⽽
⾔之,Stream API 提供了⼀種⾼效且易于使⽤的處理資料的⽅式。
Stream的一些特點:
1 . 不是資料結構,不會儲存資料。
2. 不會修改原來的資料源,它會将操作後的資料儲存到另外⼀個對象中。(保留意見:畢竟peek⽅法可以修改流中元素)
3. 惰性求值,流在中間處理過程中,隻是對操作進⾏了記錄,并不會⽴即執⾏,需要等到執⾏終⽌操作的時候才會進⾏實際的計算。
一丶建立Stream流方式一: 通過集合
//建立一個集合
List<Employee> list = EmployeeData.getEmployees();
//得到一個順序流
Stream<Employee> stream = list.stream();
//得到一個并行了流
Stream<Employee> stream2 = list.parallelStream();
二丶建立Stream流方式二: 通過數組
//先建立一個數組
int[] arr = new int[]{1, 2, 3, 4, 5, 6};
//使用數組Arrays工具類擷取Stream流
IntStream stream = Arrays.stream(arr);
二丶建立Stream流方式三: 通過stream流的of( )方法
Stream<Integer> stream = Stream.of(1,2,3,4,5,6);
四丶建立Stream流方式四: 建立無限流
//無限流之疊代方式
//建立了10個元素從0到18
Stream<Integer> s = Stream.iterate(0, t -> t + 2).limit(10);
//無限流之生成方式
//建立了10個随機數
Stream<Double> s2 = Stream.generate(Math::random).limit(10);