[解決済み] Java 8のmap()メソッドとflatMap()メソッドの違いは何ですか?
質問
Java 8では、以下の違いは何ですか?
Stream.map()
と
Stream.flatMap()
メソッドですか?
解決方法は?
両方
map
と
flatMap
を適用することができます。
Stream<T>
を返し、どちらも
Stream<R>
. 違いは
map
演算は各入力値に対して1つの出力値を生成するのに対して
flatMap
演算は、各入力値に対して任意の数(0個以上)の値を生成する。
これは各オペレーションの引数に反映されている。
は
map
演算は
Function
入力ストリームの各値に対して呼び出され、1つの結果値を生成し、それは出力ストリームに送られる。
は
flatMap
演算は、概念的には1つの値を消費して任意の数の値を生成したい関数を取ります。しかし、Javaでは、メソッドは0か1つの値しか返せないので、任意の数の値を返すことは面倒です。のマッパー関数が、任意の数の値を返すようなAPIを想像することができる。
flatMap
を受け取り、配列を返すか
List
の値が出力に送られます。これがストリーム・ライブラリであることを考えると、任意の数の戻り値を表現する特に適切な方法は、マッパー関数自体がストリームを返すことです! マッパーが返すストリームの値は、ストリームから排出され、出力ストリームに 渡される。マッパー関数の各呼び出しによって返される値の塊は、出力ストリームでは全く区別されないので、出力はquot;flattened."と言われる。
典型的な使い方は、マッパー関数が
flatMap
を返すように
Stream.empty()
のように、ゼロ値を送信したい場合は、次のようにします。
Stream.of(a, b, c)
は、いくつかの値を返したい場合。しかし、もちろんどんなストリームでも返すことができる。
関連
-
Javaクラスローダーにソースコードから潜り込む
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] StringBuilderとStringBufferの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
自動配線された依存性のインジェクションに失敗しました。
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
org.glassfish.jersey.servlet.ServletContainer
-
HttpClientがGZIP形式でない場合の対処法
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
[解決済み】mapとflatMapの違いと、それぞれの良い使用例について教えてください。
-
[解決済み】Java 8 - Optional.flatMapとOptional.mapの相違点