クラスStreamSupport

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

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

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

導入されたバージョン:
1.8
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    doubleStream(Supplier<? extends Spliterator.OfDouble> supplier, int characteristics, boolean parallel)
    Spliterator.OfDoubleSupplierから順次または並列の新しいDoubleStreamを作成します。
    doubleStream(Spliterator.OfDouble spliterator, boolean parallel)
    Spliterator.OfDoubleから順次または並列の新しいDoubleStreamを作成します。
    static IntStream
    intStream(Supplier<? extends Spliterator.OfInt> supplier, int characteristics, boolean parallel)
    Spliterator.OfIntSupplierから順次または並列の新しいIntStreamを作成します。
    static IntStream
    intStream(Spliterator.OfInt spliterator, boolean parallel)
    Spliterator.OfIntから順次または並列の新しいIntStreamを作成します。
    static LongStream
    longStream(Supplier<? extends Spliterator.OfLong> supplier, int characteristics, boolean parallel)
    Spliterator.OfLongSupplierから順次または並列の新しいLongStreamを作成します。
    static LongStream
    longStream(Spliterator.OfLong spliterator, boolean parallel)
    Spliterator.OfLongから順次または並列の新しいLongStreamを作成します。
    static <T> Stream<T>
    stream(Supplier<? extends Spliterator<T>> supplier, int characteristics, boolean parallel)
    SpliteratorSupplierから順次または並列の新しいStreamを作成します。
    static <T> Stream<T>
    stream(Spliterator<T> spliterator, boolean parallel)
    Spliteratorから新しい逐次的または並列的なStreamを作成します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • 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
      関連項目:
    • 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)
      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
      関連項目: