声明
以下笔记是笔者在学习尚硅谷的过程中整理的,如需仔细学习建议观看尚硅谷视频
StreamAPI
是什么?
StreamAPI 是 Java 8 中新增的一个 API,用于操作集合(Collection)或数组(Array)等数据源的数据流(Stream)。
Stream注重对数据的计算,与cpu打交道,集合注重数据的存储,与内存打交道
StreamAPI 的设计目的是为了提供一种更简洁、更高效的数据处理方式。相较于传统的循环遍历方式,StreamAPI 可以更加方便地进行筛选、转换、组合等操作,同时也可以更好地利用多核处理器的优势,提高程序的并发性能。
Stream语法规则
①Stream 自己不会存储元素。
②Stream 不会改变源对象。相反,他们会返回一个持有结果的新 Stream。
③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。即 一旦执行终止操作,就执行中间操作链,并产生结果。
④ Stream 一旦执行了终止操作,就不能再调用其它中间操作或终止操作了。
StreamAPI 的操作流程
创建流:
可以通过集合的 stream()
方法或数组的 Arrays.stream()
方法来创建一个流。
流分为默认顺序流和并行流。
Stream.of()创建流
使用集合的方式创建流
流分为默认顺序流和并行流。
方式一:通过集合
Java8中的Collection接口被扩展,提供了两个获取流的方法:
- default Stream stream():返回一个顺序流
- default Stream parallelStream():返回一个并行流
方式二:通过数组
Java8中的Arrays的静态方法stream()可以获取数组流:
- static Stream stream(T[] array)返一个个流
- public static IntStream stream(int[] array)
- public static LongStream stream(long[] array)
- public static DoubleStream stream(double[] array)