作者: JESiller | 来源:发表于2021-09-10 15:14 被阅读0次
流的定义

从支持数据处理操作的源生成的元素序列。

  • 元素序列
    就像集合一样,流也提供了一个接口,可以访问特定元素类型的一组有序
    值。因为集合是数据结构,所以它的主要目的是以特定的时间/空间复杂度存储和访问元素(如ArrayList 与 LinkedList)。但流的目的在于表达计算,比如你前面见到的
    filter、sorted和map。集合讲的是数据,流讲的是计算。

  • 流会使用一个提供数据的源,如集合、数组或输入/输出资源。 请注意,从有序集
    合生成流时会保留原有的顺序。由列表生成的流,其元素顺序与列表一致。
  • 数据处理操作
    流的数据处理功能支持类似于数据库的操作,以及函数式编程语言中
    的常用操作,如filter、map、reduce、find、match、sort等。流操作可以顺序执
    行,也可并行执行
  • 流水线
    很多流操作本身会返回一个流,这样多个操作就可以链接起来,形成一个大
    的流水线。
  • 内部迭代
    与使用迭代器显式迭代的集合不同,流的迭代操作是在背后进行的。我们
    在第1章中简要地提到了这个思想,下一节会再谈到它。
图片.png
我们先是对menu调用stream方法,由菜单得到一个流。数据源是菜肴列表(菜单),它给流提供一个元素序列。接下来,对流应用一系列数据处理操作:filter、map、limit和collect。除了collect之外,所有这些操作都会返回另一个流,这样它们就可以接成一条流水线,于是就可以看作对源的一个查询。最后,collect操作开始处理流水线,并返回结果(它和别的操作不一样,因为它返回的不是流,在这里是一个List)。在调用collect之前,没有任何结果产生,实际上根本就没有从menu里选择元素。你可以这么理解:链中的方法调用都在排队等待,直到调用collect。

相关文章

  • 电商的四流体系

    四流:即商品流、信息流、资金流、物流 Ps: 三流:信息流、现金流、物流 四流:信息流、现金流、物流、商品...

  • JAVA API-day07

    A 基本的IO操作 文件流 缓冲流 节点流和处理流 对象流

  • 十五、Stream 流操作

    流的简单使用 流的获取 流的转换 将流做一些处理并返回一个流 抽取子流和连接流 流的转换 2 简单约简 ,终结流的...

  • Java学习——day 17

    主要内容 缓冲流 转换流 字节数组流 数据流 对象流 笔记详情 1. 缓冲流 Java中的流可以分为节点流和处理流...

  • IO流之节点流(文件流)

    IO流的分类 按操作的数据单位:字节流(8bit),字符流(16bit)---->对于文本文件使用字符流处理,对于...

  • Append 流、 Retract 流、 Upsert 流、动态

    Append-only 流: 仅通过 INSERT 操作修改的动态表可以通过输出插入的行转换为流。 Retract...

  • 心流

    心流心流心流

  • IO流 打印流

    一共可以分成3类1:纯字节流2:字符流3:混合流(混合流最好) 混合流 字符流 字节流

  • 流与文件-流

    写在书上 保存下来防止丢失

  • 流系统--事件流

    在流系统中,常常把数据记录叫做事件(event)。实质上是一条包含信息的数据。批处理系统(batch proces...

网友评论

      本文标题:

      本文链接:https://www.haomeiwen.com/subject/arxnwltx.html