モジュール java.base
パッケージ java.util.stream

クラスStreamSupport

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

public final class StreamSupport
extends Object
ストリームを作成および操作するための低レベルのユーティリティ・メソッドです。

このクラスは基本的に、データ構造のストリーム・ビューを提供するライブラリ開発者向けのものです。エンド・ユーザー向けのstaticストリーム・メソッドの大部分は、各種のStreamクラスに含まれています。

導入されたバージョン:
1.8
  • メソッドの詳細

    • 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)
      SpliteratorSupplierから順次または並列の新しいStreamを作成します。

      サプライヤ上でSupplier.get()メソッドが呼び出されるのは一度だけであり、しかもストリーム・パイプラインの終端操作が開始されるまでは呼び出されません。

      IMMUTABLECONCURRENTのいずれかの特性を報告するスプリッテレータ、または遅延バインディングのスプリッテレータの場合、かわりにstream(java.util.Spliterator, boolean)を使用したほうがおそらく効率的です。

      Supplierをこの形式で使用すると、ある種の間接性が提供され、ソースへの干渉が発生する可能性が減ります。 サプライヤは終端操作が開始されるまで呼び出されないので、終端操作が開始されるまでに行われたソースに対する変更はすべて、ストリームの結果に反映されます。 詳細については、「非干渉」を参照してください。

      型パラメータ:
      T - ストリーム要素の型
      パラメータ:
      supplier - SpliteratorSupplier
      characteristics - 指定されたSpliteratorのスプリッテレータ特性。 この特性はsupplier.get().characteristics()と等しい必要があります。そうでないと、終端操作の開始時に未定義の動作が発生する可能性があります。
      parallel - trueの場合は返されるストリームが並列ストリームになり、falseの場合は返されるストリームが順次ストリームになる。
      戻り値:
      新しい順次または並列Stream
      関連項目:
      stream(java.util.Spliterator, boolean)
    • 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
      関連項目:
      intStream(java.util.Spliterator.OfInt, boolean)
    • 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
      関連項目:
      longStream(java.util.Spliterator.OfLong, boolean)
    • doubleStream

      public static DoubleStream doubleStream​(Spliterator.OfDouble spliterator, boolean parallel)
      Spliterator.OfDoubleから順次または並列の新しいDoubleStreamを作成します。

      スプリッテレータのトラバース、分割、または推定サイズの照会は、ストリーム・パイプラインの終端操作が開始されるまで行われません。

      スプリッテレータから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)
      Spliterator.OfDoubleSupplierから順次または並列の新しいDoubleStreamを作成します。

      サプライヤ上でSupplier.get()メソッドが呼び出されるのは一度だけであり、しかもストリーム・パイプラインの終端操作が開始されるまでは呼び出されません。

      IMMUTABLECONCURRENTのいずれかの特性を報告するスプリッテレータ、または遅延バインディングのスプリッテレータの場合、代わりにdoubleStream(java.util.Spliterator.OfDouble, boolean)を使用したほうがおそらく効率的です。

      Supplierをこの形式で使用すると、ある種の間接性が提供され、ソースへの干渉が発生する可能性が減ります。 サプライヤは終端操作が開始されるまで呼び出されないので、終端操作が開始されるまでに行われたソースに対する変更はすべて、ストリームの結果に反映されます。 詳細については、「非干渉」を参照してください。

      パラメータ:
      supplier - Spliterator.OfDoubleSupplier
      characteristics - 指定されたSpliterator.OfDoubleのスプリッテレータ特性。 この特性はsupplier.get().characteristics()と等しい必要があります。そうでないと、終端操作の開始時に未定義の動作が発生する可能性があります。
      parallel - trueの場合は返されるストリームが並列ストリームになり、falseの場合は返されるストリームが順次ストリームになる。
      戻り値:
      新しい順次または並列DoubleStream
      関連項目:
      doubleStream(java.util.Spliterator.OfDouble, boolean)