• [Java 8 Lambda] java.util.stream 简单介绍


    包结构例如以下所看到的:




    这个包的结构非常easy,类型也不多。

     

    BaseStream接口

    全部Stream接口类型的父接口,它继承自AutoClosable接口,定义了一些全部Stream都具备的行为。

     

    由于继承自AutoClosable接口,所以全部的Stream类型都能够用在Java 7中引入的try-with-resource机制中,以达到自己主动关闭资源的目的。实际上,仅仅有当Stream是通过SocketFiles IO等方式创建的时候,才须要关闭它。对于来自于CollectionsArraysStream,是不须要关闭的。

     

    Stream接口

    定义了众多Stream应该具有的行为。

    最典型的比方filter方法族,map方法族以及reduce方法族,这三个方法是FunctionalProgramming的标志。典型的Map-Filter-Reduce模式便是依靠这三个操作来定义的。

     

    与此同一时候,Stream接口还定义了一些用于创建Streamstatic方法,创建的Stream能够是有限的,也能够是无限的。有限的非常好理解,而无限Stream是一个新概念,通过generate方法或者iterate方法实现。

     

    IntStream, LongStream 以及 DoubleStream 接口

    基于原生类型int, long以及doubleStream。提供了众多类型相关的操作。

    典型的比如,sum方法,min/max方法,average方法等。这些方法都是Reduce操作的详细实现。

     

    Collect接口

    对于Reduce操作的抽象。此接口中定义了经常使用的Reduce操作。

    当中定义的Reduce操作能够通过串行或者并行的方式进行实现。BaseStream接口中的parallelsequentialunordered方法提供的高层API使并发程序设计变得很简洁。

    毕竟,Map-Filter-Reduce模式的灵魂就在于并行计算。

     

    Collectors

    提供了众多能够直接使用的Reduce操作。

    典型的比方groupingBy以及partitioningBy操作。它们都能够通过串行或者并行的方式进行实现。比方,groupingByConcurrent会使用并行的方式进行grouping操作。

     

    StreamSupport

    提供了底层的一些用于操作Stream的方法,假设不须要创建自己的Stream,一般不须要使用它。


  • 相关阅读:
    [转]C# 常用字符串加密解密方法
    ADO.net商机题目
    ADO.net属性拓展
    实体类,数据访问类应用
    实体类,数据访问类.字符串攻击.防攻击
    ADO.net增删改的应用
    ADO.net增删改查
    css——层叠样式表
    标题栏小图标、锚点、滚动效果、视频插入、音乐插入
    HTML——超文本标记语言(表单及12个表单元素)
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3845340.html
Copyright © 2020-2023  润新知