モジュール java.base
パッケージ 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)