美文网首页Java
BaseStream文档

BaseStream文档

作者: shz_Minato | 来源:发表于2019-01-29 11:44 被阅读39次

一、概述

 BaseStream接口是Stream的基接口,支持串行和并行的聚合操作。该接口任然是AutoCloseable的子接口,支持了自动关闭流的功能。其接口声明如下:

public interface BaseStream<T, S extends BaseStream<T, S>> extends AutoCloseable

泛型含义:
    T 是流中元素的类型
    S 是BaseStream的实现

以Stream流为例
public interface Stream<T> extends BaseStream<T, Stream<T>>
Stream是BaseStream的子接口,其泛型是T和Stream<T>

父接口的S就是此处的Stream<T>

代码说明
interface Base<T, S extends Base<T, S>> {
    //返回泛型S的实例
    S getS();
}

interface Single<T> extends Base<T,Single<T>>{
}

class MyTest{
    public static void main(String[] args) {
        //String就是上述的泛型T
        Single<String> stringSingle=new Single<String>() {
            @Override
            public Single<String> getS() {
                //此处返回的就是Single<String>
                return null;
            }
        };
    }
}

综上 T就是流中元素(String)
     S就是流,流中的元素任然是T(Single<String>)
     以上设计保证了流的中间操作返回的流的元素一致性
     

二、方法说明

 Iterator<T> iterator()
  该方法返回流中元素的迭代器,泛型就是T(流中元素的类型)

 Spliterator<T> spliterator()
  该方法返回流中元素的分割迭代器,泛型就是T(流中元素的类型)

 boolean isParallel()
  该方法返回流是否是并行流(流中元素的类型),必须在终止操作之前调用此方法,否则会造成超出预期的结果。

 S sequential()
  该方法返回的是S,上述解释S就是一个新的Stream,新Stream的元素仍然是T,如果已经是串行的流调用此方法则返回本身。

 S parallel()
  同上述方法一致,此方法返回的流是并行流。

 S unordered()
  该方法返回的是S,上述解释S就是一个新的Stream,新Stream的元素仍然是T。新流是无序的,如果旧流本身是无序的或者已经设置为无序,则新流就是旧流本身。

 S onClose(Runnable closeHandler)
  该方法返回的是S,上述解释S就是一个新的Stream,新Stream的元素仍然是T。当close方法调用时,参数中的closeHandler才会执行,并且执行的顺序是添加的顺序。及时先添加的closeHandler抛出了异常,后续的closeHandler任会执行。第一个异常会传递到调用者处,后续的异常则是一起汇聚为suppressed exceptions。


 void close()
  关闭流,会导致上述方法中所有的closeHandler调用。

相关文章

  • BaseStream文档

    一、概述  BaseStream接口是Stream的基接口,支持串行和并行的聚合操作。该接口任然是AutoClos...

  • java8-流(BaseStream)

    BaseStream BaseStream接口的方法 类 @Param T : the type of the ...

  • Java-8-IntStream接口

    Java-8-IntStream接口 interface IntStream extends BaseStream...

  • 2019-04-26

    测试文档测试文档测试文档测试文档测试文档测试文档测试文档测试文档测试文档测试文档测试文档测试文档测试文档测试文档测...

  • Elasticsearch(ES)文档的CRUD

    新增文档(不指定文档ID) 新增文档(指定文档ID) 通过文档ID获取文档 通过文档ID更新文档 通过文档ID删除...

  • elasticsearch cat api

    健康: 文档 count: 文档 索引:文档 节点:文档 cluster:文档 分片:文档(需要注意state字段)

  • 2020-09-22

    互联网/软件全套文档、产品文档、技术文档、测试文档、运维文档、项目文档 前言简约文档可提高团队沟通效率;详细文档体...

  • Elasticsearch 7.x 入门之restful请求(2

    使用restful操作 创建文档新建文档.png 查看文档文档信息.png 删除文档文档删除.png 新建文档自动...

  • Shape/GradientLayer

    参考文档1参考文档2参考文档3参考文档4参考文档5参考文档6 CAShapeLayer CAShapeLayer ...

  • 文档结构

    项目文档结构 UI文档结构 通用组件文档结构 业务组件文档结构 store文档结构

网友评论

    本文标题:BaseStream文档

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