[解決済み] Java 8 JDK を使用して、Iterable を Stream に変換する
2022-03-21 13:44:22
質問
を返すインターフェイスがあります。
java.lang.Iterable<T>
.
その結果を、Java 8 Stream APIを使って操作したい。
しかし、Iterableはquot;stream"することができません。
IterableをListに変換せずにStreamとして使用する方法はありますか?
どのように解決するのですか?
を使うよりもずっと良い答えがあります。
spliteratorUnknownSize
を直接指定する方が簡単で、より良い結果を得ることができます。
Iterable
には
spliterator()
メソッドがあるので、それを使ってスプリテータを取得すればよいのです。 最悪の場合、同じコード (デフォルトの実装では
spliteratorUnknownSize
) が、より一般的なケースでは、あなたの
Iterable
がすでにコレクションである場合、より優れたスプリテータが得られるので、ストリームのパフォーマンスが向上します (おそらく並列化もうまくいくでしょう)。 また、コードも少なくなります。
StreamSupport.stream(iterable.spliterator(), false)
.filter(...)
.moreStreamOps(...);
ご覧の通り、ストリームを
Iterable
(参照
本題
)はあまり痛くない。
関連
-
java の例外が発生しました java
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] Java 8 List<V> を Map<K, V> に変換する。
-
[解決済み] Java 8 StreamをArrayに変換する方法は?
-
[解決済み] 可能な限り常にパラレルストリームを使用した方がいいのでしょうか?
-
[解決済み】Stream<T>がIterable<T>を実装していないのはなぜですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
Methodのinvokeメソッド実装のJavaリフレクション
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
[解決済み】Stream<T>がIterable<T>を実装していないのはなぜですか?
-
[解決済み】Iterable<T>がstream()とparallelStream()メソッドを提供しないのはなぜですか?