Module java.base
Package java.util.stream

Class StreamSupport

java.lang.Object
java.util.stream.StreamSupport

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

这个类主要是为库编写者提供数据结构流视图;大多数面向最终用户的静态流方法都在各种Stream类中。

自 JDK 版本:
1.8
  • Method Details

    • stream

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

      只有在流管道的终端操作开始后,才会遍历、拆分或查询估计大小的分割器。

      强烈建议分割器报告IMMUTABLECONCURRENT的特征,或者是后期绑定。否则,应该使用stream(java.util.function.Supplier, int, boolean)来减少与源的潜在干扰范围。有关更多详细信息,请参见非干扰

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

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

      只有在流管道的终端操作开始后,才会在供应商上调用Supplier.get()方法不超过一次。

      对于报告IMMUTABLECONCURRENT特征的分割器,或者是后期绑定的分割器,使用stream(java.util.Spliterator, boolean)可能更有效。

      以这种形式使用Supplier提供了一定程度的间接性,减少了与源的潜在干扰范围。由于供应商只有在终端操作开始后才会被调用,因此在终端操作开始之前对源的任何修改都会反映在流结果中。有关更多详细信息,请参见非干扰

      类型参数:
      T - 流元素的类型
      参数:
      supplier - 一个SpliteratorSupplier
      characteristics - 供应的Spliterator的分割器特征。特征必须等于supplier.get().characteristics(),否则在终端操作开始时可能会发生未定义的行为。
      parallel - 如果为true,则返回的流是并行流;如果为false,则返回的流是顺序流。
      返回:
      一个新的顺序或并行Stream
    • intStream

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

      只有在流管道的终端操作开始后,才会遍历、拆分或查询估计大小的分割器。

      强烈建议分割器报告IMMUTABLECONCURRENT的特征,或者是后期绑定。否则,应该使用intStream(java.util.function.Supplier, int, boolean)来减少与源的潜在干扰范围。有关更多详细信息,请参见非干扰

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

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

      只有在流管道的终端操作开始后,才会在供应商上调用Supplier.get()方法不超过一次。

      对于报告IMMUTABLECONCURRENT特征的分割器,或者是后期绑定的分割器,使用intStream(java.util.Spliterator.OfInt, boolean)可能更有效。

      以这种形式使用Supplier提供了一定程度的间接性,减少了与源的潜在干扰范围。由于供应商只有在终端操作开始后才会被调用,因此在终端操作开始之前对源的任何修改都会反映在流结果中。有关更多详细信息,请参见非干扰

      参数:
      supplier - 一个Spliterator.OfIntSupplier
      characteristics - 供应的Spliterator.OfInt的分割器特征。特征必须等于supplier.get().characteristics(),否则在终端操作开始时可能会发生未定义的行为。
      parallel - 如果为true,则返回的流是并行流;如果为false,则返回的流是顺序流。
      返回:
      一个新的顺序或并行IntStream
      参见:
    • longStream

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

      只有在流管道的终端操作开始后,才会遍历、拆分或查询估计大小的分割器。

      强烈建议分割器报告IMMUTABLECONCURRENT的特征,或者是后期绑定。否则,应该使用longStream(java.util.function.Supplier, int, boolean)来减少与源的潜在干扰范围。有关更多详细信息,请参见非干扰

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

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

      只有在流管道的终端操作开始后,才会在供应商上调用Supplier.get()方法不超过一次。

      对于报告IMMUTABLECONCURRENT特征的分割器,或者是后期绑定的分割器,使用longStream(java.util.Spliterator.OfLong, boolean)可能更有效。

      以这种形式使用Supplier提供了一定程度的间接性,减少了与源的潜在干扰范围。由于供应商只有在终端操作开始后才会被调用,因此在终端操作开始之前对源的任何修改都会反映在流结果中。有关更多详细信息,请参见非干扰

      参数:
      supplier - 一个Spliterator.OfLongSupplier
      characteristics - 供应的Spliterator.OfLong的分割器特征。特征必须等于supplier.get().characteristics(),否则在终端操作开始时可能会发生未定义的行为。
      parallel - 如果为true,则返回的流是并行流;如果为false,则返回的流是顺序流。
      返回:
      一个新的顺序或并行LongStream
      参见:
    • doubleStream

      public static DoubleStream doubleStream(Spliterator.OfDouble spliterator, boolean parallel)
      创建一个新的顺序或并行DoubleStream,从一个Spliterator.OfDouble中创建。

      只有在流管道的终端操作开始后,才会遍历、拆分或查询分割器的估计大小。

      强烈建议分割器报告IMMUTABLECONCURRENT的特征,或者是延迟绑定。否则,应该使用doubleStream(java.util.function.Supplier, int, boolean)来减少与源的潜在干扰范围。更多详情请参见非干扰

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

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

      在流管道的终端操作开始后,将最多调用一次供应商的Supplier.get()方法。

      对于报告特征IMMUTABLECONCURRENT的分割器,或者是延迟绑定的分割器,使用doubleStream(java.util.Spliterator.OfDouble, boolean)可能更有效。

      以这种形式使用Supplier提供了一定程度的间接性,减少了与源的潜在干扰范围。由于供应商仅在终端操作开始后调用,因此在终端操作开始之前对源的任何修改都会反映在流结果中。更多详情请参见非干扰

      参数:
      supplier - 一个Supplier,提供一个Spliterator.OfDouble
      characteristics - 所提供的Spliterator.OfDouble的分割器特征。特征必须等于supplier.get().characteristics(),否则在终端操作开始时可能会发生未定义的行为。
      parallel - 如果为true,则返回的流是并行流;如果为false,则返回的流是顺序流。
      返回:
      一个新的顺序或并行DoubleStream
      参见: