• 函数式编程


    一.Stream流

    Java8的Stream使用的是函数是编程模式,如同它的名字一样,它可以被用来对集合数组进行链状流式的操作。可以更方便的让我们对集合或数组操作。
    注意:stream流必须有终结操作

    二.集合或数组使用stream流

    1.单列集合

    集合对象.stream()

    2.数组

    Arrays.stream(数组)或者使用stream.of来创建

    3.双列集合

    转换成单列集合后再创建

    三.stram流之中间操作

    1.filter

    可以对流中的元素进行条件过滤,符合过滤条件的才能继续留在流中。

    2.map

    可以把对流中的元素进行计算或转换。

    3.distinct

    可以去除流中的重复元素
    注意:distinct方法是依赖Object的equals方法来判断是否是相同对象的。所以需要注意重写equals方法 .

    4.sorted

    可以对流中的元素进行排序

    5.limit

    可以设置流的最大长度,超出的部分将被抛弃

    6.skip

    跳过流中的前n个元素,返回剩下的元素

    7.flagMap

    map只能把一个对象转换成另一个对象来作为流中的元素。而flagMap可以把一个对象转换成多个对象作为流中的元素。

    四.stram流之终结操作

    1.forEach

    对流中的元素进行遍历操作,我们通过传入的参数去指定对遍历到的元素进行什么具体操作。

    2.count

    可以用来获取当前流中元素的个数

    3.max&min

    可以用来获得流中的最值

    4.collect

    把当前流做换成一个集合,通常用来收集流
    在这里插入图片描述

    五.查找与匹配

    1.anyMatch

    可以用来判断是否有任意符合匹配条件的元素,结果为boolean类型

    2.allMatch

    可以用来判断是否都符合匹配条件,结果为boolean类型。如果都符合结果为true,否则结果为false。

    3.noneMatch

    可以判断流中的元素是否都不符合匹配条件。如果都不符合结果为true,否则为false。

    4.findAny

    获取流中的任意一个元素。该方法没有办法保证获取的一定是流中的第一个元素。

    5.findFirst

    获取流中的第一个元素

    6.reduce归并

    对流中的数据按照你指定的计算方式计算出一个结果。
    reduce的作用是把stream中的元素给组合起来,我们可以传入一个初始值,它会按照我们的计算方式依次拿流中的元素和在初始化值的基础上进行计算,计算结果再和后面的元素计算。

    六.并行流

    当流中有大量元素时,我们可以使用并行流去提高操作的效率。其实并行流就是把任务分配给多个线程去完成。如果我们自己用代码实现的话会非常复杂,并且要求对并发编程有足够的理解和认识。而如果我们使用stream的话,我们只需要修改一个方法的调用就可以使用并行流来帮我们实现,从而提高效率。

    流对象.parallel()

  • 相关阅读:
    6.1.2 基于MSI文件安装MySQL
    【微搭低代码】家校协同管理系统实战开发教程
    【C语言】32个关键字
    Android - Service
    2022年全球市场中性耐候硅酮密封胶总体规模、主要生产商、主要地区、产品和应用细分研究报告
    Cesium案例(八) Terrain
    swift枚举(一)
    Dubbo 一些你不一定知道但是很好用的功能
    规则解读(二)| 本地资源检测 For Unreal
    CML、LVPECL和LVDS
  • 原文地址:https://blog.csdn.net/qq_44794280/article/details/127903434