中国建设银行总行门户网站,盛盾科技网站建设,南阳专业网站制作费用,做教育类网站一般流程1 Stream的介绍
1.1 概念
stream流操作是Java 8提供一个重要新特性#xff0c;它允许开发人员以声明性方式处理集合#xff0c;其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中#xf…1 Stream的介绍
1.1 概念
stream流操作是Java 8提供一个重要新特性它允许开发人员以声明性方式处理集合其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中能让代码更加简洁极大地简化了集合的处理操作提高了开发的效率和生产力。stream不是一种数据结构它只是某种数据源的一个视图数据源可以是一个数组Java容器等。在Stream中的操作每一次都会产生新的流内部不会像普通集合操作一样立刻获取值而是 惰性取值 只有等到用户真正需要结果的时候才会执行。 并且对于现在调用的方法本身都是一种高层次构件与线程模型无关。因此在并行使用中无需再去操心线程和锁。Stream内部都已经做好了 。1.2 原理
可以把Stream流当成工厂中的流水线每个stream流的操作过程遵循着创建 --操作 --获取结果的过程
可以把他理解成sql的视图集合就相当于数据表中的数据获取stream流的过程就是确定数据表的属性和元数据的过程对stream流进行操作的过程就是通过sql对这些数据进行查找、过滤、组合、计算、操作、分组等过程获取结果就是sql执行完毕之后获取的结果视图一样1.3 特点 Stream可以由数组或集合创建对流的操作分为两种 中间操作每次返回一个新的流可以有多个终端操作每个流只能进行一次终端操作终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值 特点 stream不存储数据而是按照特定的规则对数据进行计算一般会输出结果stream不会改变数据源通常情况下会产生一个新的集合或一个值。stream具有延迟执行特性只有调用终端操作时中间操作才会执行。
2 Stream的创建
2.1 集合创建
通过java.util.Collection.stream()方法用集合创建流 Testpublic void m1(){ListString list new ArrayList();list.add(AAA);//创建stream顺序流对象StreamString stream1 list.stream();//创建stream顺序流对象StreamString stream2 list.parallelStream();System.out.println(stream1);System.out.println(stream2);}2.2 数组创建
使用java.util.Arrays.stream(T[] array)方法用数组创建流 Testpublic void m2(){String[] arrStr {AAA,BBB,CCC};StreamString stream Arrays.stream(arrStr);}2.3 静态方法创建
使用Stream的静态方法of()、iterate()、generate() 3 Stream的API