問題タブ [java-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2410 参照

java - Java 8 でコレクションを連結する

コレクションのコレクションを繰り返し処理したい。グアバを使用すると、次のようになります。

しかし、Java 8 ストリームで同じことを行うにはどうすればよいでしょうか?

0 投票する
2 に答える
6314 参照

java - Java8 ストリーミング API を使用して、コレクションから最大 (または最小) を削除します

Java 8 の新しいストリーミング API を使用するコード設計にはほとんど問題がありません。新しいことを学びたいのですが、タスクの 1 つは次のとおりです。

リストから最大値と最小値を拒否します。リストには重複が含まれていません。

シンプルに見えますか?いいえ...私のコード:

このコードは優れています (最小/最大の重複がない場合のみですが、これはここでの重要な問題ではありません) が、問題はここで 3 つのストリームを使用していることです。1 つ目はメイン ストリーム、2 つ目は最大値を削除、3 つ目は最小値を削除します。このタスクを 1 つのストリームで実行する可能性はありますか?

//編集: 非常に原始的な Scala バージョン:

リストをシャッフルした可能性があるため、追加の並べ替えを使用します。

0 投票する
3 に答える
127734 参照

java - Java 8 メソッド参照: パラメーター化された結果を提供できるサプライヤーを提供する

使いたいです

コンストラクターパラメーターを要求する例外タイプを使用します。このようなもの:

引数の値を渡す Supplier を作成する方法はありますか?

0 投票する
2 に答える
2758 参照

java - Java 8 ストリーム IllegalStateException

Java8 ストリームで素数を計算しようとしていますが、IllegalStateException に入ります: ストリームは既に操作されているか、閉じられています。

これは私のコードです:

そして、これはスタックトレースです:

これは、ストリーム呼び出しを別のストリームに適用しようとしているからだと感じていますが、この考えでも、最も簡単な回避策は何なのかわかりません。

0 投票する
5 に答える
2473 参照

java - パイプラインの途中でストリームを閉じる

ストリーム パイプライン中に多くのファイルを開くこのコードを実行すると:

例外があります:

問題はStream.count、ストリームのトラバースが完了したときにストリームを閉じないことです。しかし、それが端末操作であることを考えると、なぜそうすべきではないのかわかりません。reduceやなどの他の端末操作についても同様forEachです。flatMap一方、それが構成するストリームを閉じます。

ドキュメントには、必要に応じて try-with-resouces-statement を使用してストリームを閉じるように指示されています。私の場合、count行を次のように置き換えることができます。

しかし、これはうるさくて醜く、大規模で複雑なパイプラインを使用する場合には、非常に不便な場合があります。

だから私の質問は次のとおりです。

  1. ターミナル操作が作業中のストリームを閉じるようにストリームが設計されなかったのはなぜですか? これにより、IO ストリームでより適切に機能するようになります。
  2. パイプラインで IO ストリームを閉じるための最適なソリューションは何ですか?

runtimizeExceptionチェックされた例外をRuntimeExceptions にラップするメソッドです。

0 投票する
3 に答える
266 参照

java - ストリームを使用して HashSet から極値を除外する

私は Java 8 ストリームを試してきましたが、これが最小スコアと最大スコアを削除する最良の方法です。

0 投票する
0 に答える
117 参照

java - Lazy convert IterableストリームへJava 8で?

Java 8 で Iterable を遅延した方法で Stream に変換する方法を探しています。この Java 8 を実行する良い方法を知っている人はいますか?

私がこれまでに試したことは次のとおりです。

これが最善の方法ですか?

0 投票する
3 に答える
42586 参照

java - Java8 Streams を使用して別の 2 つのリストからオブジェクトのリストを作成する

次の Java6 および Java8 コードがあります。

ラムダを使用してより簡潔な方法で以前の for を処理する Java8 の方法はありますか?

0 投票する
2 に答える
18088 参照

java - Comparator.comparing が String::toLowerCase メソッド参照で機能しないのはなぜですか?

文字列の配列を変更せずに逆の順序で (大文字と小文字を区別せずに) 並べ替えようとしています。だから私はJava8ストリームを使用しています。しかし、私はそれを行うことができません。

これが私の試みです:

ここでの問題はString::toLowerCase、静的メソッドでは受け入れられないことですComparator.comparing

その間、私は配列をソートすることができましたが、それを変更しました:

では、最も簡単な回避策は何ですか?