JDK8新特性之stream流

Welcome Huihui's Code World ! !

接下来看看由辉辉所写的关于stream流的相关操作吧

目录

Welcome Huihui's Code World ! !

一.是什么

二.为什么要用stream流

1.因为集合处理数据有弊端

2.stream流带有优势(特性)

三.怎么用

四.常用方法

终结方法

foreach():遍历数据

count():统计元素的个数

非终结方法

filter():过滤数据,返回符合条件的数据

limit(long):对流进行截取,取用前n个

skip(long):对流进行截取,跳过前n个

map():将流中的元素映射搭配另一个流中

sorted():将数据进行排序

distinct():去除重复数据


一.是什么

Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等

JDK8新特性之stream流_第1张图片

二.为什么要用stream流

  • 1.因为集合处理数据有弊端

    • JDK8新特性之stream流_第2张图片

    • 示例

      JDK8新特性之stream流_第3张图片

    • 2.stream流带有优势(特性)

      • 不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果
      • 不会改变数据源,通常情况下会产生一个新的集合或一个值
      • 具有延迟执行特性,只有调用终端操作时,中间操作才会执行

三.怎么用

  • 获取流
    • 根据Collection获取流

      JDK8新特性之stream流_第4张图片

    • Stream中的静态方法of获取流

      JDK8新特性之stream流_第5张图片

注意:

  • stream流只能操作一次
    • 所以下面的count()需要重新命名

      JDK8新特性之stream流_第6张图片

  • Stream方法返回的是新的流
  • 如果不调用终结方法,中间的操作就不会执行

四.常用方法

终结方法

foreach():遍历数据

JDK8新特性之stream流_第7张图片

count():统计元素的个数

JDK8新特性之stream流_第8张图片

非终结方法

filter():过滤数据,返回符合条件的数据

该方法是将一个流转换成另一个子集流

JDK8新特性之stream流_第9张图片

JDK8新特性之stream流_第10张图片

limit(long):对流进行截取,取用前n个

如果集合长度大于传入的参数则进行截取,反之不进行截取

JDK8新特性之stream流_第11张图片

JDK8新特性之stream流_第12张图片

skip(long):对流进行截取,跳过前n个

如果流的当前长度大于传进来的参数,则跳过前n个,否则会得到一个长度为0的空流

JDK8新特性之stream流_第13张图片

JDK8新特性之stream流_第14张图片

map():将流中的元素映射搭配另一个流中

 Stream map(Function mapper);

JDK8新特性之stream流_第15张图片

JDK8新特性之stream流_第16张图片

sorted():将数据进行排序

可以根据元素的自然顺序进行排序,也可以指定比较器排序

JDK8新特性之stream流_第17张图片

distinct():去除重复数据

JDK8新特性之stream流_第18张图片

JDK8新特性之stream流_第19张图片

                      好啦,今天的分享就到这了,希望能够帮到你呢!                  

你可能感兴趣的:(JDK8新特性,数学建模)