-
- すべてのスーパー・インタフェース:
AutoCloseable,BaseStream<Integer,IntStream>
public interface IntStream extends BaseStream<Integer,IntStream>
順次および並列の集約操作をサポートするプリミティブint値要素のシーケンスです。 これは、Streamに対してintプリミティブ特殊化を行ったものです。次の例は、
StreamとIntStreamを使って赤色のウィジェットの重さの合計を計算する集計操作を示したものです。
ストリーム、ストリーム操作、ストリーム・パイプライン、および並列性の詳しい仕様については、int sum = widgets.stream() .filter(w -> w.getColor() == RED) .mapToInt(w -> w.getWeight()) .sum();Streamのクラス・ドキュメントやjava.util.streamのパッケージ・ドキュメントを参照してください。- 導入されたバージョン:
- 1.8
- 関連項目:
Stream, java.util.stream
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static interfaceIntStream.BuilderIntStreamの可変ビルダーです。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド デフォルト・メソッド 修飾子と型 メソッド 説明 booleanallMatch(IntPredicate predicate)このストリームのすべての要素が指定された述語に一致するかどうかを返します。booleananyMatch(IntPredicate predicate)このストリームのいずれかの要素が指定された述語に一致するかどうかを返します。DoubleStreamasDoubleStream()このストリームの要素をdoubleに変換した結果から構成されるDoubleStreamを返します。LongStreamasLongStream()このストリームの要素をlongに変換した結果から構成されるLongStreamを返します。OptionalDoubleaverage()このストリームの要素の算術平均を記述するOptionalDoubleを返します。このストリームが空の場合は空のOptionalを返します。Stream<Integer>boxed()ストリームの各要素をIntegerにボクシングした結果から構成されるStreamを返します。static IntStream.Builderbuilder()IntStreamのビルダーを返します。<R> Rcollect(Supplier<R> supplier, ObjIntConsumer<R> accumulator, BiConsumer<R,R> combiner)このストリームの要素に対して可変リダクション操作を実行します。static IntStreamconcat(IntStream a, IntStream b)最初のストリームの全要素と2番目のストリームの全要素を連結したものを要素に持つ、遅延連結ストリームを作成します。longcount()このストリームの要素の個数を返します。IntStreamdistinct()このストリームの重複を除いた要素から構成されるストリームを返します。default IntStreamdropWhile(IntPredicate predicate)このストリームが順序付けされている場合、指定された述語と一致する要素の最長接頭辞を削除した後に、このストリームの残りの要素で構成されるストリームを返します。static IntStreamempty()空の順次IntStreamを返します。IntStreamfilter(IntPredicate predicate)このストリームの要素のうち、指定された述語に一致するものから構成されるストリームを返します。OptionalIntfindAny()ストリームの一部の要素を記述するOptionalIntを返します。ストリームが空の場合は空のOptionalIntを返します。OptionalIntfindFirst()このストリームの最初の要素を記述するOptionalIntを返します。ストリームが空の場合は空のOptionalIntを返します。IntStreamflatMap(IntFunction<? extends IntStream> mapper)このストリームの各要素をマップされたストリーム(指定されたマッピング関数を各要素に適用することで得られる)の内容で置き換えた結果から成るストリームを返します。voidforEach(IntConsumer action)このストリームの各要素に対してアクションを実行します。voidforEachOrdered(IntConsumer action)このストリームの各要素に対してアクションを実行します。検出順が定義されたストリームでは、各要素が検出順に処理されることが保証されます。static IntStreamgenerate(IntSupplier s)指定されたIntSupplierによって生成される要素を含む、順序付けされていない無限順次ストリームを返します。static IntStreamiterate(int seed, IntPredicate hasNext, IntUnaryOperator next)指定されたnext関数の初期要素への反復適用によって生成される、順序付けられたIntStreamを、指定されたhasNext述語を満たすことを条件として戻します。static IntStreamiterate(int seed, IntUnaryOperator f)初期要素seedに関数fを繰り返し適用することで生成される、順序付けされた無限順次IntStreamを返します(seed、f(seed)、f(f(seed))、といった要素から成るStreamが生成される)。IntStreamlimit(long maxSize)このストリームの要素をmaxSize以内の長さに切り詰めた結果から成るストリームを返します。IntStreammap(IntUnaryOperator mapper)このストリームの要素に指定された関数を適用した結果から構成されるストリームを返します。DoubleStreammapToDouble(IntToDoubleFunction mapper)このストリームの要素に指定された関数を適用した結果から構成されるDoubleStreamを返します。LongStreammapToLong(IntToLongFunction mapper)このストリームの要素に指定された関数を適用した結果から構成されるLongStreamを返します。<U> Stream<U>mapToObj(IntFunction<? extends U> mapper)指定された関数をこのストリームの要素に適用した結果から構成される、オブジェクト値のStreamを返します。OptionalIntmax()このストリームの最大要素を記述するOptionalInt、またはこのストリームが空の場合は空のOptionalを返します。OptionalIntmin()このストリームの最小要素を記述するOptionalIntまたは空のオプション(このストリームが空の場合)を返します。booleannoneMatch(IntPredicate predicate)指定された述語に一致する要素がこのストリーム内に存在しないかどうかを返します。static IntStreamof(int t)単一要素を含む順次IntStreamを返します。static IntStreamof(int... values)指定された値を要素に持つ、順序付けされた順次ストリームを返します。IntStreampeek(IntConsumer action)このストリームの要素から成るストリームを返すほか、その結果のストリームから消費される各要素に対し、指定されたアクションを実行します。static IntStreamrange(int startInclusive, int endExclusive)startInclusive(含む)からendExclusive(含まない)の範囲でステップ1でインクリメントした値を含む、順序付けされた順次IntStreamを返します。static IntStreamrangeClosed(int startInclusive, int endInclusive)startInclusive(含む)からendInclusive(含む)の範囲でステップ1でインクリメントした値を含む、順序付けされた順次IntStreamを返します。intreduce(int identity, IntBinaryOperator op)OptionalIntreduce(IntBinaryOperator op)IntStreamskip(long n)このストリームの最初のn個の要素を破棄した残りの要素で構成されるストリームを返します。IntStreamsorted()このストリームの要素で構成されるストリームをソートされた順序で返します。intsum()このストリーム内の要素の合計を返します。IntSummaryStatisticssummaryStatistics()このストリームの要素に関する各種のサマリー・データを記述するIntSummaryStatisticsを返します。default IntStreamtakeWhile(IntPredicate predicate)このストリームが順序付けされている場合、指定された述語と一致する、このストリームから取得された要素の最長接頭辞で構成されるストリームを返します。int[]toArray()このストリームの要素を含む配列を返します。-
インタフェースjava.util.streamで宣言されたメソッド。BaseStream
close, isParallel, iterator, onClose, parallel, sequential, spliterator, unordered
-
-
-
-
メソッドの詳細
-
filter
IntStream filter(IntPredicate predicate)
このストリームの要素のうち、指定された述語に一致するものから構成されるストリームを返します。これは中間操作です。
-
map
IntStream map(IntUnaryOperator mapper)
このストリームの要素に指定された関数を適用した結果から構成されるストリームを返します。これは中間操作です。
-
mapToObj
<U> Stream<U> mapToObj(IntFunction<? extends U> mapper)
指定された関数をこのストリームの要素に適用した結果から構成される、オブジェクト値のStreamを返します。これは中間操作です。
-
mapToLong
LongStream mapToLong(IntToLongFunction mapper)
このストリームの要素に指定された関数を適用した結果から構成されるLongStreamを返します。これは中間操作です。
-
mapToDouble
DoubleStream mapToDouble(IntToDoubleFunction mapper)
このストリームの要素に指定された関数を適用した結果から構成されるDoubleStreamを返します。これは中間操作です。
-
flatMap
IntStream flatMap(IntFunction<? extends IntStream> mapper)
このストリームの各要素をマップされたストリーム(指定されたマッピング関数を各要素に適用することで得られる)の内容で置き換えた結果から成るストリームを返します。 各マップ先ストリームは、その内容がこのストリーム内に配置されるとクローズされます。 (マップ先ストリームがnullの場合はかわりに空のストリームが使用されます。)これは中間操作です。
- パラメータ:
mapper- 新しい値のIntStreamを生成するために各要素に適用する、非干渉でステートレスな関数- 戻り値:
- 新しいストリーム
- 関連項目:
Stream.flatMap(Function)
-
distinct
IntStream distinct()
このストリームの重複を除いた要素から構成されるストリームを返します。これはステートフルな中間操作です。
- 戻り値:
- 新しいストリーム
-
sorted
IntStream sorted()
このストリームの要素で構成されるストリームをソートされた順序で返します。これはステートフルな中間操作です。
- 戻り値:
- 新しいストリーム
-
peek
IntStream peek(IntConsumer action)
このストリームの要素から成るストリームを返すほか、その結果のストリームから消費される各要素に対し、指定されたアクションを実行します。これは中間操作です。
並列ストリーム・パイプラインの場合、上流の操作によって用意された各要素に対し、任意のタイミングで任意のスレッド内でアクションが呼び出される可能性があります。 アクションが共有状態を変更する場合、必要な同期を提供する責任はアクションにあります。
- APIのノート:
- このメソッドの主な存在理由は、要素がパイプライン内の特定のポイントを通過する際にその内容を確認するようなデバッグをサポートすることにあります。
IntStream.of(1, 2, 3, 4) .filter(e -> e > 2) .peek(e -> System.out.println("Filtered value: " + e)) .map(e -> e * e) .peek(e -> System.out.println("Mapped value: " + e)) .sum();ストリーム実装で、一部またはすべての要素(
findFirstなどの短絡操作やcount()で説明する例など)の生産を最適化できる場合、それらの要素に対してアクションは起動されません。 - パラメータ:
action- ストリームから消費される要素に対して実行すべき非干渉アクション- 戻り値:
- 新しいストリーム
-
limit
IntStream limit(long maxSize)
このストリームの要素をmaxSize以内の長さに切り詰めた結果から成るストリームを返します。これは、ステートフルな短絡中間操作です。
- APIのノート:
limit()は、順次ストリーム・パイプラインでは一般に低コストの操作ですが、順序付けされた並列パイプラインではコストが非常に高くなる可能性があります(特にmaxSizeの値が大きい場合)。任意のn個の要素を返すだけでなく、検出順での最初のn個の要素を返さなければいけない、という制約がlimit(n)に課されるからです。 状況のセマンティックスが許せば、順序付けされていないストリーム・ソース(generate(IntSupplier)など)を使用するか、BaseStream.unordered()で順序付けの制約をなくせば、並列パイプラインのlimit()が大幅に高速化される可能性があります。 検出順序との整合性が必要で、かつ並列パイプラインでのlimit()のパフォーマンスやメモリー使用量に問題がある場合には、BaseStream.sequential()で順次実行に切り替えるとパフォーマンスが改善される可能性があります。- パラメータ:
maxSize- ストリームの要素数の上限- 戻り値:
- 新しいストリーム
- 例外:
IllegalArgumentException-maxSizeが負の場合
-
skip
IntStream skip(long n)
このストリームの最初のn個の要素を破棄した残りの要素で構成されるストリームを返します。 このストリームに含まれる要素の数がn個より少ない場合は、空のストリームが返されます。これはステートフルな中間操作です。
- APIのノート:
skip()は、順次ストリーム・パイプラインでは一般に低コストの操作ですが、順序付けされた並列パイプラインではコストが非常に高くなる可能性があります(特にnの値が大きい場合)。任意のn個の要素をスキップするだけでなく、検出順での最初のn個の要素をスキップしなければいけない、という制約がskip(n)に課されるからです。 状況のセマンティックスが許せば、順序付けされていないストリーム・ソース(generate(IntSupplier)など)を使用するか、BaseStream.unordered()で順序付けの制約をなくせば、並列パイプラインのskip()が大幅に高速化される可能性があります。 検出順序との整合性が必要で、かつ並列パイプラインでのskip()のパフォーマンスやメモリー使用量に問題がある場合には、BaseStream.sequential()で順次実行に切り替えるとパフォーマンスが改善される可能性があります。- パラメータ:
n- スキップする先頭要素の数- 戻り値:
- 新しいストリーム
- 例外:
IllegalArgumentException-nが負の場合
-
takeWhile
default IntStream takeWhile(IntPredicate predicate)
このストリームが順序付けされている場合、指定された述語と一致する、このストリームから取得された要素の最長接頭辞で構成されるストリームを返します。 それ以外の場合は、このストリームが順序付けられていない場合、指定された述語と一致するこのストリームから取得された要素のサブセットで構成されるストリームが返されます。このストリームが順序付けされている場合、最も長い接頭辞は、指定された述語と一致するこのストリームの要素の連続したシーケンスです。 シーケンスの最初の要素がこのストリームの最初の要素であり、シーケンスの最後の要素の直後の要素が指定された述語と一致しません。
このストリームが順序付けされておらず、このストリームの一部の(すべてではない)要素が指定された述語と一致する場合、この操作の動作は非決定的であり、一致する要素のサブセット(空のセットを含む)を自由に取得できます。
このストリームのすべての要素が指定された述語と一致する場合、このストリームが順序付けされているか順序付けられていないかに関係なく、この操作はすべての要素を取ります(結果は入力と同じです)。または、ストリームの要素が指定の述語と一致しない場合、要素は取られません(結果は空のストリームになります)。
これは、ステートフルな短絡中間操作です。
- APIのノート:
takeWhile()は通常、順次ストリーム・パイプラインに対する安価な操作ですが、順序付けられたパラレル・パイプラインでは、有効な接頭辞のみでなく、検出順序で要素の最も長い接頭辞を返すように操作が制約されるため、非常にコストがかかります。 順序付けされていないストリーム・ソース(generate(IntSupplier)など)を使用するか、BaseStream.unordered()で順序付け制約を削除すると、状況のセマンティクスが許可されている場合、パラレル・パイプラインでtakeWhile()が大幅に高速化される可能性があります。 検出順序との整合性が必要で、パラレル・パイプラインのtakeWhile()でパフォーマンスまたはメモリー使用率が低下している場合、BaseStream.sequential()を使用して順次実行に切り替えると、パフォーマンスが向上する可能性があります。- 実装要件:
- デフォルトの実装では、このストリームの
spliteratorが取得され、トラバーサルでのこの操作のセマンティクスをサポートするためにそのスプリッテレータがラップされ、ラップされたスプリッテレータに関連付けられた新しいストリームが返されます。 返されるストリームは、このストリームの実行特性(BaseStream.isParallel()によるパラレル実行または順次実行)を保持しますが、ラップされたスプリッテレータは分割をサポートしないことを選択できます。 返されたストリームが閉じられると、返されたストリームとこのストリームの両方のクローズ・ハンドラが呼び出されます。 - パラメータ:
predicate- 要素の最長接頭辞を決定するために要素に適用する非干渉でステートレスな述語。- 戻り値:
- 新しいストリーム
- 導入されたバージョン:
- 9
-
dropWhile
default IntStream dropWhile(IntPredicate predicate)
このストリームが順序付けされている場合、指定された述語と一致する要素の最長接頭辞を削除した後に、このストリームの残りの要素で構成されるストリームを返します。 それ以外の場合は、このストリームが順序付けされていない場合、指定された述語と一致する要素のサブセットを削除した後に、このストリームの残りの要素で構成されるストリームが返されます。このストリームが順序付けされている場合、最も長い接頭辞は、指定された述語と一致するこのストリームの要素の連続したシーケンスです。 シーケンスの最初の要素がこのストリームの最初の要素であり、シーケンスの最後の要素の直後の要素が指定された述語と一致しません。
このストリームが順序付けされておらず、このストリームの一部の(すべてではない)要素が指定された述語と一致する場合、この操作の動作は非決定的であり、一致する要素のサブセット(空のセットを含む)を自由に削除できます。
このストリームのすべての要素が指定された述語と一致する場合、このストリームが順序付けされているか順序付けられていないかに関係なく、この操作によってすべての要素が削除されます(結果は空のストリームです)。または、指定された述語に一致するストリームの要素がない場合、要素は削除されません(結果は入力と同じです)。
これはステートフルな中間操作です。
- APIのノート:
dropWhile()は通常、順次ストリーム・パイプラインに対する安価な操作ですが、順序付けられたパラレル・パイプラインでは、有効な接頭辞のみでなく、検出順序で要素の最も長い接頭辞を返すように操作が制約されるため、非常にコストがかかります。 順序付けされていないストリーム・ソース(generate(IntSupplier)など)を使用するか、BaseStream.unordered()で順序付け制約を削除すると、状況のセマンティクスが許可されている場合、パラレル・パイプラインでdropWhile()が大幅に高速化される可能性があります。 検出順序との整合性が必要で、パラレル・パイプラインのdropWhile()でパフォーマンスまたはメモリー使用率が低下している場合、BaseStream.sequential()を使用して順次実行に切り替えると、パフォーマンスが向上する可能性があります。- 実装要件:
- デフォルトの実装では、このストリームの
spliteratorが取得され、トラバーサルでのこの操作のセマンティクスをサポートするためにそのスプリッテレータがラップされ、ラップされたスプリッテレータに関連付けられた新しいストリームが返されます。 返されるストリームは、このストリームの実行特性(BaseStream.isParallel()によるパラレル実行または順次実行)を保持しますが、ラップされたスプリッテレータは分割をサポートしないことを選択できます。 返されたストリームが閉じられると、返されたストリームとこのストリームの両方のクローズ・ハンドラが呼び出されます。 - パラメータ:
predicate- 要素の最長接頭辞を決定するために要素に適用する非干渉でステートレスな述語。- 戻り値:
- 新しいストリーム
- 導入されたバージョン:
- 9
-
forEach
void forEach(IntConsumer action)
このストリームの各要素に対してアクションを実行します。これは終端操作です。
並列ストリーム・パイプラインの場合、この操作は、ストリームの検出順序を考慮することを保証しません。保証すると並列性のメリットが犠牲になるからです。 与えられた任意の要素に対し、ライブラリが選択した任意のタイミングで任意のスレッド内でアクションが実行される可能性があります。 アクションが共有状態にアクセスする場合、必要な同期を提供する責任はアクションにあります。
- パラメータ:
action- 要素に対して実行する非干渉アクション
-
forEachOrdered
void forEachOrdered(IntConsumer action)
このストリームの各要素に対してアクションを実行します。検出順が定義されたストリームでは、各要素が検出順に処理されることが保証されます。これは終端操作です。
- パラメータ:
action- 要素に対して実行する非干渉アクション- 関連項目:
forEach(IntConsumer)
-
toArray
int[] toArray()
このストリームの要素を含む配列を返します。これは終端操作です。
- 戻り値:
- このストリームの要素を含む配列
-
reduce
int reduce(int identity, IntBinaryOperator op)指定された単位元の値と結合的な累積関数を使ってこのストリームの要素に対してリダクションを実行し、リデュースされた値を返します。 これは、次の操作に相当します。
ただし、順次実行の制約が課されるわけではありません。int result = identity; for (int element : this stream) result = accumulator.applyAsInt(result, element) return result;identity値はアキュムレータ関数の単位元でなければいけません。 つまり、すべてのxについて、accumulator.apply(identity, x)がxに等しくなります。アキュムレータ関数は結合的な関数でなければいけません。これは終端操作です。
- APIのノート:
- 合計、最小、最大、平均はすべて、リダクションの特殊な場合です。 数値ストリームの合計は次のように表現できます。
あるいは、次のようによりコンパクトにします。int sum = integers.reduce(0, (a, b) -> a+b);int sum = integers.reduce(0, Integer::sum);これは、単純にループで中間合計を更新していく方法に比べて遠回りな集計方法に見えるかもしれませんが、リダクション操作の並列化が容易に行え、並列化の際に同期を追加する必要がなく、データ競合のリスクも大幅に減少します。
- パラメータ:
identity- 蓄積関数に対する単位元の値op- 2つの値を結合するための結合的、非干渉およびステートレスな関数- 戻り値:
- リダクションの結果
- 関連項目:
sum(),min(),max(),average()
-
reduce
OptionalInt reduce(IntBinaryOperator op)
結合的累積関数を使用して、このストリームの要素に対してリダクションを実行し、リダクションされた値を記述するOptionalIntを返します(ある場合)。 これは、次の操作に相当します。
ただし、順次実行の制約が課されるわけではありません。boolean foundAny = false; int result = null; for (int element : this stream) { if (!foundAny) { foundAny = true; result = element; } else result = accumulator.applyAsInt(result, element); } return foundAny ? OptionalInt.of(result) : OptionalInt.empty();アキュムレータ関数は結合的な関数でなければいけません。これは終端操作です。
- パラメータ:
op- 2つの値を結合するための結合的、非干渉およびステートレスな関数- 戻り値:
- リダクションの結果
- 関連項目:
reduce(int, IntBinaryOperator)
-
collect
<R> R collect(Supplier<R> supplier, ObjIntConsumer<R> accumulator, BiConsumer<R,R> combiner)
このストリームの要素に対して可変リダクション操作を実行します。 可変リダクションとは、リデュース対象の値がArrayListのような可変の結果コンテナであり、結果を置き換えるかわりに結果の状態を更新することによって要素が組み込まれるようなリダクションのことです。 これは次と同等の結果を生成します。R result = supplier.get(); for (int element : this stream) accumulator.accept(result, element); return result;collect操作はreduce(int, IntBinaryOperator)と同様、同期を追加しなくても並列化できます。これは終端操作です。
- 型パラメータ:
R- 可変結果コンテナのタイプ- パラメータ:
supplier- 新しい可変結果コンテナを作成する関数。 並列実行の場合、この関数は複数回呼び出される可能性がありますが、そのたびに新しい値を返す必要があります。accumulator- 要素を結果コンテナに折りたたむ必要がある相関、非干渉、ステートレス関数。combiner- 2つの部分的な結果コンテナを受け入れてマージする相関関数、非干渉関数、ステートレス関数で、累計関数と互換性がある必要があります。 コンバイナ関数は、2番目の結果コンテナの要素を最初の結果コンテナに折りたたむ必要があります。- 戻り値:
- リダクションの結果
- 関連項目:
Stream.collect(Supplier, BiConsumer, BiConsumer)
-
sum
int sum()
- 戻り値:
- このストリームの要素の合計
-
min
OptionalInt min()
このストリームの最小要素を記述するOptionalIntまたは空のオプション(このストリームが空の場合)を返します。 これはリダクションの特殊な場合であり、次と同等になります。return reduce(Integer::min);これは終端操作です。
- 戻り値:
- このストリームの最小要素を含む
OptionalIntまたは空のOptionalInt(ストリームが空の場合)
-
max
OptionalInt max()
このストリームの最大要素を記述するOptionalInt、またはこのストリームが空の場合は空のOptionalを返します。 これはリダクションの特殊な場合であり、次と同等になります。return reduce(Integer::max);これは終端操作です。
- 戻り値:
- このストリームの最大要素を含む
OptionalIntまたは空のOptionalInt(ストリームが空の場合)
-
count
long count()
- APIのノート:
- ストリーム・ソースからカウントを直接計算できる場合、実装は、ストリーム・パイプラインを(順次またはパラレルで)実行しないことを選択できます。 このような場合、ソース要素はトラバースされず、中間操作は評価されません。 デバッグなどの無害なケースを除き、副作用を伴う行動パラメータには強く推奨されません。 たとえば、次のストリームについて考えてみます。
ストリーム・ソースでカバーされる要素の数がわかっており、中間操作IntStream s = IntStream.of(1, 2, 3, 4); long count = s.peek(System.out::println).count();peekは、ストリームに要素を注入または削除しません(flatMapまたはfilter操作の場合も同様)。 したがって、カウントは4で、パイプラインを実行する必要はなく、副作用として要素を出力します。 - 戻り値:
- このストリームの要素の個数
-
average
OptionalDouble average()
- 戻り値:
- このストリームの平均要素を含む
OptionalDoubleまたは空のオプション(ストリームが空の場合)
-
summaryStatistics
IntSummaryStatistics summaryStatistics()
- 戻り値:
- このストリームの要素に関する各種のサマリー・データを記述する
IntSummaryStatistics
-
anyMatch
boolean anyMatch(IntPredicate predicate)
このストリームのいずれかの要素が指定された述語に一致するかどうかを返します。 すべての要素で述語を評価するとは限りません(結果を決定するのに必要でない場合)。 ストリームが空の場合、falseが返され、述語は評価されません。これは短絡終端操作です。
-
allMatch
boolean allMatch(IntPredicate predicate)
このストリームのすべての要素が指定された述語に一致するかどうかを返します。 すべての要素で述語を評価するとは限りません(結果を決定するのに必要でない場合)。 ストリームが空の場合、trueが返され、述語は評価されません。これは短絡終端操作です。
-
noneMatch
boolean noneMatch(IntPredicate predicate)
指定された述語に一致する要素がこのストリーム内に存在しないかどうかを返します。 すべての要素で述語を評価するとは限りません(結果を決定するのに必要でない場合)。 ストリームが空の場合、trueが返され、述語は評価されません。これは短絡終端操作です。
-
findFirst
OptionalInt findFirst()
このストリームの最初の要素を記述するOptionalIntを返します。ストリームが空の場合は空のOptionalIntを返します。 ストリームが検出順序を持たない場合は、任意の要素が返されます。これは短絡終端操作です。
- 戻り値:
- このストリームの最初の要素を記述する
OptionalIntまたは空のOptionalInt(ストリームが空の場合)
-
findAny
OptionalInt findAny()
ストリームの一部の要素を記述するOptionalIntを返します。ストリームが空の場合は空のOptionalIntを返します。これは短絡終端操作です。
この操作の動作は明らかに非決定論的です。ストリームの任意の要素を自由に選択できます。 これは、並列処理でのパフォーマンスを最大化できるようにするためです。デメリットは、同じソースに対して呼び出すたびに、違う結果が返される可能性がある点です。 (安定した結果が必要な場合は、かわりに
findFirst()を使用してください。)- 戻り値:
- このストリームのある要素を記述する
OptionalIntまたは空のOptionalInt(ストリームが空の場合) - 関連項目:
findFirst()
-
asLongStream
LongStream asLongStream()
このストリームの要素をlongに変換した結果から構成されるLongStreamを返します。これは中間操作です。
- 戻り値:
- このストリームの要素を
longに変換した結果から構成されるLongStream
-
asDoubleStream
DoubleStream asDoubleStream()
このストリームの要素をdoubleに変換した結果から構成されるDoubleStreamを返します。これは中間操作です。
- 戻り値:
- このストリームの要素を
doubleに変換した結果から構成されるDoubleStream
-
boxed
Stream<Integer> boxed()
ストリームの各要素をIntegerにボクシングした結果から構成されるStreamを返します。これは中間操作です。
- 戻り値:
- ストリームの各要素を
Integerにボクシングした結果から構成されるStream
-
builder
static IntStream.Builder builder()
IntStreamのビルダーを返します。- 戻り値:
- ストリーム・ビルダー
-
empty
static IntStream empty()
空の順次IntStreamを返します。- 戻り値:
- 空の順次ストリーム
-
of
static IntStream of(int t)
単一要素を含む順次IntStreamを返します。- パラメータ:
t- 単一要素- 戻り値:
- 単一要素の順次ストリーム
-
of
static IntStream of(int... values)
指定された値を要素に持つ、順序付けされた順次ストリームを返します。- パラメータ:
values- 新しいストリームの要素- 戻り値:
- 新しいストリーム
-
iterate
static IntStream iterate(int seed, IntUnaryOperator f)
初期要素seedに関数fを繰り返し適用することで生成される、順序付けされた無限順次IntStreamを返します(seed、f(seed)、f(f(seed))、といった要素から成るStreamが生成される)。IntStreamの最初の要素(位置0)は、指定されたseedになります。n > 0の場合、位置nの要素は、位置n - 1の要素に関数fを適用した結果になります。後続の要素に
fを適用するアクションの前に、1つの要素にfを適用するアクション。 任意の要素に対して、ライブラリが選択する任意のスレッドでアクションを実行できます。- パラメータ:
seed- 初期要素f- 新しい要素を生成するために1つ前の要素に適用される関数- 戻り値:
- 新しい順次
IntStream
-
iterate
static IntStream iterate(int seed, IntPredicate hasNext, IntUnaryOperator next)
指定されたnext関数の初期要素への反復適用によって生成される、順序付けられたIntStreamを、指定されたhasNext述語を満たすことを条件として戻します。 ストリームは、hasNext述語がfalseを返すとすぐに終了します。IntStream.iterateは、対応するfor-loopで生成される要素と同じ順序を生成する必要があります。for (int index=seed; hasNext.test(index); index = next.applyAsInt(index)) { ... }hasNext述語がシード値を保持しない場合、結果の順序は空になることがあります。 それ以外の場合、最初の要素は指定されたseed値になり、次の要素(存在する場合)はnext関数をseed値に適用した結果になり、hasNext述語がストリームの終了を示すまで繰り返されます。hasNext述語をhappens-before要素に適用するアクションは、その要素にnext関数を適用します。hasNext述語を後続の要素に適用するアクションの前に、1つの要素にnext関数を適用するアクション。 任意の要素に対して、ライブラリが選択する任意のスレッドでアクションを実行できます。- パラメータ:
seed- 初期要素hasNext- ストリームを終了する必要があるタイミングを決定するために要素に適用する述語。next- 新しい要素を生成するために前の要素に適用される関数- 戻り値:
- 新しい順次
IntStream - 導入されたバージョン:
- 9
-
generate
static IntStream generate(IntSupplier s)
指定されたIntSupplierによって生成される要素を含む、順序付けされていない無限順次ストリームを返します。 これは、定数ストリームやランダムな要素から成るストリームなどを生成するのに適しています。- パラメータ:
s- 要素を生成するためのIntSupplier- 戻り値:
- 順序付けされていない新しい無限順次
IntStream
-
range
static IntStream range(int startInclusive, int endExclusive)
startInclusive(含む)からendExclusive(含まない)の範囲でステップ1でインクリメントした値を含む、順序付けされた順次IntStreamを返します。- APIのノート:
同等の増加する値のシーケンスは、次のような
forループを使って順次的に生成できます。for (int i = startInclusive; i < endExclusive ; i++) { ... }- パラメータ:
startInclusive- 初期値(この値を含む)endExclusive- 上限(この値を含まない)- 戻り値:
int要素の範囲に対する順次IntStream
-
rangeClosed
static IntStream rangeClosed(int startInclusive, int endInclusive)
startInclusive(含む)からendInclusive(含む)の範囲でステップ1でインクリメントした値を含む、順序付けされた順次IntStreamを返します。- APIのノート:
同等の増加する値のシーケンスは、次のような
forループを使って順次的に生成できます。for (int i = startInclusive; i <= endInclusive ; i++) { ... }- パラメータ:
startInclusive- 初期値(この値を含む)endInclusive- 上限(この値を含む)- 戻り値:
int要素の範囲に対する順次IntStream
-
concat
static IntStream concat(IntStream a, IntStream b)
最初のストリームの全要素と2番目のストリームの全要素を連結したものを要素に持つ、遅延連結ストリームを作成します。 結果のストリームが順序付けされるのは、入力ストリームがどちらも順序付けされている場合であり、並列的になるのは、入力ストリームのどちらかが並列的な場合です。 結果のストリームのクローズ時には、両方の入力ストリームのクローズ・ハンドラが呼び出されます。このメソッドは、2つの入力ストリームを操作し、各ストリームをそのソースにバインドします。 その結果、入力ストリーム・ソースに対する後続の変更は、連結ストリーム結果に反映されない可能性があります。
- APIのノート:
- 最適化の機会を保持するために、このメソッドは各ストリームをソースにバインドし、パラメータとして2つのストリームのみを受け入れます。 たとえば、各入力ストリーム・ソースの正確なサイズがわかっている場合は、連結ストリーム・ソースの正確なサイズを計算できます。 バインディングなしで、またはこのメソッドへのネストされたコールなしで、より多くのストリームを連結するには、次のように、ストリームのストリームとアイデンティティ関数によるフラット・マッピングの作成を試みます。
IntStream concat = Stream.of(s1, s2, s3, s4).flatMapToInt(s -> s); - 実装上のノート:
- 連結を繰り返すことでストリームを構築する際には注意が必要です。 深く連結されたストリームの要素にアクセスすると、ディープ・コール・チェーンまたは
StackOverflowErrorが発生する可能性があります。 - パラメータ:
a- 最初のストリームb- 2番目のストリーム- 戻り値:
- 2つの入力ストリームを連結したもの
-
-