模块  java.base
软件包  java.util.stream

Class StreamSupport


  • public final class StreamSupport
    extends Object
    用于创建和操作流的低级实用程序方法。

    该类主要用于库编写者,提供数据结构的流视图; 针对最终用户的大多数静态流方法都在各种Stream类中。

    从以下版本开始:
    1.8
    • 方法详细信息

      • stream

        public static <T> Stream<T> stream​(Spliterator<T> spliterator,
                                           boolean parallel)
        创建一个新的串行或并行StreamSpliterator

        在流管道的终端操作开始之后,仅对估计的大小遍历,分割或查询分裂器。

        强烈建议分裂器报告特征为IMMUTABLECONCURRENT ,或者为late-binding 否则,应使用stream(java.util.function.Supplier, int, boolean)来减少对源的潜在干扰范围。 有关更多详细信息,请参见Non-Interference

        参数类型
        T - 流元素的类型
        参数
        spliterator - 描述流元素的 Spliterator
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        一个新的顺序或并行 Stream
      • stream

        public static <T> Stream<T> stream​(Supplier<? extends Spliterator<T>> supplier,
                                           int characteristics,
                                           boolean parallel)
        创建一个新的顺序或并行StreamSupplierSpliterator

        Supplier.get()方法将在供应商上调用不超过一次,并且仅在流管道的终端操作开始之后。

        对于报告特征为IMMUTABLECONCURRENTlate-binding的分裂器 ,使用stream(java.util.Spliterator, boolean)可能更有效。

        以这种形式使用Supplier提供了间接级别,减少了对源的潜在干扰的范围。 由于仅在终端操作开始之后调用供应商,因此直到终端操作开始的对源的任何修改都反映在流结果中。 有关详细信息,请参见Non-Interference

        参数类型
        T - 流元素的类型
        参数
        supplier - Supplier of Spliterator
        characteristics - 所提供的Spliterator Spliterator特性。 特性必须等于supplier.get().characteristics() ,否则终端操作开始时可能会出现未定义的行为。
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        一个新的顺序或并行 Stream
        另请参见:
        stream(java.util.Spliterator, boolean)
      • intStream

        public static IntStream intStream​(Spliterator.OfInt spliterator,
                                          boolean parallel)
        创建一个新的串行或并行IntStreamSpliterator.OfInt

        在流管道的终端操作开始之后,仅对估计的大小遍历,分割或查询分裂器。

        强烈建议分裂器报告特征为IMMUTABLECONCURRENT ,或者为late-binding 否则,应使用intStream(java.util.function.Supplier, int, boolean)来减少对源的潜在干扰范围。 有关更多详细信息,请参见Non-Interference

        参数
        spliterator - 描述流元素的 Spliterator.OfInt
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        一个新的顺序或并行 IntStream
      • intStream

        public static IntStream intStream​(Supplier<? extends Spliterator.OfInt> supplier,
                                          int characteristics,
                                          boolean parallel)
        创建一个新的顺序或并行IntStreamSupplierSpliterator.OfInt

        Supplier.get()方法将在供应商上调用不超过一次,并且仅在流管道的终端操作开始之后。

        对于报告特征为IMMUTABLECONCURRENTlate-binding的分裂者 ,使用intStream(java.util.Spliterator.OfInt, boolean)可能更有效。

        以这种形式使用Supplier提供了间接级别,减少了对源的潜在干扰的范围。 由于仅在终端操作开始之后调用供应商,因此直到终端操作开始的对源的任何修改都反映在流结果中。 有关详细信息,请参见Non-Interference

        参数
        supplier - SupplierSpliterator.OfInt
        characteristics - 所提供的Spliterator.OfInt音器特性。 特性必须等于supplier.get().characteristics() ,否则在终端操作开始时可能会出现未定义的行为。
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        一个新的顺序或并行 IntStream
        另请参见:
        intStream(java.util.Spliterator.OfInt, boolean)
      • longStream

        public static LongStream longStream​(Spliterator.OfLong spliterator,
                                            boolean parallel)
        创建一个新的串行或并行LongStreamSpliterator.OfLong

        在流管道的终端操作开始之后,仅对估计的大小遍历,分割或查询分裂器。

        强烈建议分裂器报告特征为IMMUTABLECONCURRENT ,或者为late-binding 否则,应使用longStream(java.util.function.Supplier, int, boolean)来减少对源的潜在干扰范围。 有关更多详细信息,请参见Non-Interference

        参数
        spliterator - 描述流元素的 Spliterator.OfLong
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        新的顺序或并行 LongStream
      • longStream

        public static LongStream longStream​(Supplier<? extends Spliterator.OfLong> supplier,
                                            int characteristics,
                                            boolean parallel)
        创建一个新的顺序或并行LongStreamSupplierSpliterator.OfLong

        Supplier.get()方法将在供应商上调用不超过一次,并且仅在流管道的终端操作开始之后。

        对于报告特征为IMMUTABLECONCURRENTlate-binding的分裂者 ,使用longStream(java.util.Spliterator.OfLong, boolean)可能更有效。

        以这种形式使用Supplier提供了间接级别,减少了对源的潜在干扰的范围。 由于仅在终端操作开始之后调用供应商,因此直到终端操作开始的对源的任何修改都反映在流结果中。 有关详细信息,请参见Non-Interference

        参数
        supplier - SupplierSpliterator.OfLong
        characteristics - 随附的Spliterator.OfLong分隔符特性。 特性必须等于supplier.get().characteristics() ,否则终端操作开始时可能会出现未定义的行为。
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        一个新的顺序或并行 LongStream
        另请参见:
        longStream(java.util.Spliterator.OfLong, boolean)
      • doubleStream

        public static DoubleStream doubleStream​(Spliterator.OfDouble spliterator,
                                                boolean parallel)
        创建一个新的串行或并行DoubleStreamSpliterator.OfDouble

        在流管道的终端操作开始之后,仅对估计的大小遍历,分割或查询分裂器。

        强烈建议分裂器报告特征为IMMUTABLECONCURRENT ,或者为late-binding 否则,应使用doubleStream(java.util.function.Supplier, int, boolean)来减少对源的潜在干扰范围。 有关更多详细信息,请参见Non-Interference

        参数
        spliterator - 描述流元素的 Spliterator.OfDouble
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        一个新的顺序或并行 DoubleStream
      • doubleStream

        public static DoubleStream doubleStream​(Supplier<? extends Spliterator.OfDouble> supplier,
                                                int characteristics,
                                                boolean parallel)
        创建一个新的顺序或并行DoubleStreamSupplierSpliterator.OfDouble

        Supplier.get()方法将在供应商上调用不超过一次,并且仅在流管道的终端操作开始之后。

        对于报告特征为IMMUTABLECONCURRENTlate-binding的分裂器 ,使用doubleStream(java.util.Spliterator.OfDouble, boolean)可能更有效。

        以这种形式使用Supplier提供了间接级别,减少了对源的潜在干扰的范围。 由于仅在终端操作开始之后调用供应商,因此直到终端操作开始的对源的任何修改都反映在流结果中。 有关详细信息,请参阅Non-Interference

        参数
        supplier - Supplier of Spliterator.OfDouble
        characteristics - 所提供的Spliterator.OfDouble Spliterator特性。 特性必须等于supplier.get().characteristics() ,否则终端操作开始时可能会出现未定义的行为。
        parallel - 如果是true则返回的流是并行流; 如果false返回的流是顺序流。
        结果
        一个新的顺序或并行 DoubleStream
        另请参见:
        doubleStream(java.util.Spliterator.OfDouble, boolean)