Java では、Stream はコレクション データを処理するための強力なツールです。データを操作および変換するための関数型プログラミング方法を提供します。ストリーム内のメソッドpeek
は、ストリームの内容を変更せずにストリームの各要素に対して操作を実行できる非終端操作です。
peek
メソッドの構文は次のとおりです。
Stream<T> peek(Consumer<? super T> action)
ここでaction
、 は要素を受け取り、演算を実行する関数です。
peek
このメソッドの主な機能は、ストリームの各要素に対して、要素の値の出力、ログ記録、デバッグなどの操作を実行することです。これは通常、ストリームの内容を変更せずにストリームの中間状態をデバッグしたり観察したりするために使用されます。
peek
これを使用する簡単な例を次に示します。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> doubledNumbers = numbers.stream()
.peek(n -> System.out.println("Processing number: " + n))
.map(n -> n * 2)
.collect(Collectors.toList());
上の例では、整数のリストを作成しnumbers
、ストリームを通じて各要素を処理します。stream の操作ではpeek
、各数値の値を出力します。次に、map
演算を使用して各数値を 2 で乗算し、結果を新しいリストに収集します。
上記のコードを実行すると、次の出力が表示されます。
Processing number: 1
Processing number: 2
Processing number: 3
Processing number: 4
Processing number: 5
メソッドを使用するとpeek
、ストリーム内の各要素の処理を観察できます。これは、ストリームの中間状態をデバッグしたり理解したりするのに役立ちます。
peek
このメソッドは中間操作であり、ストリームの終了操作をトリガーしないことに注意してください。ストリームの内容を変更したり、最終結果を取得したりする場合は、peek
メソッドの後に、 などの端末操作を追加するcollect
必要forEach
があります。
要約すると、peek
メソッドはストリームの各要素に対して操作を実行する非終端操作です。これは通常、ストリームの内容を変更せずにストリームの中間状態をデバッグしたり観察したりするために使用されます。