Java 8 の
Stream.map() と Stream. flatMap() の比較
Stream.map() と Stream. flatMap()は、Java 8 で一般的に使用される 2 つのメソッドで、値のストリームに対して同様の変換を実行します。ただし、値の処理方法と戻り値には根本的な違いがあります。
Stream.map()
- 関数を受け入れるを拡張します。引数として指定します。ここで、T は入力型、R は出力型です。
- 指定された関数を入力ストリームの各要素に適用します。
- 変換された値を含む新しいストリームを生成します。それぞれが入力値に対応します。
- たとえば、整数のストリームが与えられた場合、map を使用して各整数をその 2 乗に変換できます。
Stream. flatMap( )
- 関数を受け入れます> を拡張します引数として、各入力値のストリームを返します。
- 入力ストリームの各要素で関数を呼び出します。
- 結果のストリームは 1 つのストリームに連結され、「フラット化されたストリーム」が作成されます。 " 出力。
- たとえば、文字列のストリームが与えられた場合、 flatMap を使用してすべての個々の文字を単一の文字ストリームに抽出できます。
主な違い
map() と flatMap() の主な違いは、変換関数の結果をどのように処理するかにあります。
-
map() は 1 つの 変換値。
- flatMap() は、各入力値に対して 0 個以上 の変換値を生成します。
この区別は、結果として生じるストリームの形状と内容に影響を与えます。 flatMap() はネストされたストリームの作成を可能にしますが、map() は元のストリームと同じ次元を維持します。
以上がJava 8 の Stream.map() と Stream. flatMap() の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。