問題タブ [streamex]

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 投票する
1 に答える
847 参照

java - StreamEx を「Plain Old Java Stream」にアンラップする方法は?

StreamEx は強力なライブラリですが、ある時点でその超能力は必要なくなりました。

StreamEx の内部オーバーヘッドを取り除くにはどうすればよいですか? これは問題を引き起こす可能性がありますか?

元。

0 投票する
1 に答える
930 参照

java - メソッドを Java 8 ストリームに追加する

Java 8 Streamを使用しているときに、Streamに必要な特定のメソッド (たとえば、 takeWhile()dropWhile()などskipLast()) がないことに気付くことがあります。Java 8 Streamアーキテクチャ全体を書き直さずに、追加のメソッドを持つ独自のストリーム クラスを作成するにはどうすればよいですか?

私はStreamExライブラリを認識しており、 takeWhile()dropWhile( ) があることを知っています。これを書いている時点では、ありませんskipLast()。このメソッドの問題を提出しました。

受け入れられる解決策は、Java 8 StreamまたはStreamExを拡張する方法を示すことです。

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

java - ストリームの groupingBy 値

groupingBy結果の Map エントリ/値をストリーミングするための非端末バージョンまたはその他の適切な方法はありますか?

私は後で値をストリーミングしたいと思っていますgroupingByが、私が思いつくことができる最高のものはきれいではありません:

0 投票する
1 に答える
2413 参照

java - streamex でマップ ストリームの double 値を合計するにはどうすればよいですか?

StreamEx ライブラリは、Java 8 ストリームを簡潔に記述するのに本当に役立つようです。特に、マップを検討する場合 (mapKeyValueたとえば、マップ エントリを手動でアンボックスする代わりに を使用します)。

マップにエントリのストリームがある場合、バニラ Java 8 では次のように値を合計できます。

StreamExでもこれを行うことができますが、StreamExでそれを行うより良い方法を期待していましたが、私が思いつく最善の方法は次のとおりです。

これは良くありません。

私が行方不明になっているより良い方法はありますか?

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

java - StreamEx.parallel().forEach() が .map() の後で並列実行されない

StreamEx lib を使用して、以下のようにカスタム ForkJoinPool でストリームを並列化すると、後続のアクションはそのプールから並列スレッドで実行されることに気付きました。ただし、map() 操作を追加して結果のストリームを並列処理すると、プールからのスレッドが 1 つだけ使用されます。

以下は、この問題を示す最小限の作業例の完全なコード (すべてのインポートを除く) です。executeAsParallelFromList() メソッドと executeAsParallelAfterMap() メソッドの唯一の違いは、 .parallel() の前に .map(...) 呼び出しが追加されていることです。

両方の方法を実行する単体テスト:

実行結果:

ご覧のとおり、executeAsParallelFromList() の実行時には 3 つのスレッドすべてが使用されていますが、executeAsParallelAfterMap() の実行時には 1 つのスレッドしか使用されていません。

なんで?

ありがとう!

マリーナ

注: この例は意図的に単純化されています。問題を説明するために、できるだけ最小限にしようとしました。明らかに実際には、 map() 、 handleItem() などでさらに多くのことが行われており、入力データはさらに興味深いものです (AWS S3 バケット/プレフィックスを並行して処理しようとしています)。

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

java - AbstractStreamEx.nonNull() の Eclipse 外部 Null アノテーション

次のコード例を検討してください。このコードは、Eclipse@NonNull@Nullableアノテーションを使用してnulls をチェックします。残念ながら、Eclipse は次の行にエラーのフラグを立てますmap(toNonNull)

エラーメッセージは次のとおりです。

Null 型の不一致 (型注釈): 'Function' が必要ですが、この式の型は 'Function<@NonNull Integer, @NonNull Integer>' です

StreamExnonNull() (またはより正確にはAbstractStreamEx )に Eclipse 外部アノテーションを作成して、ストリーム内のnonNull()値を null にすることはできないことを Eclipse が認識できるようにしたいと考えています。

これが Eclipse 外部注釈の始まりです。

何を入れ???ますか?

0 投票する
1 に答える
886 参照

java - SimpleEntry と StreamEx でマップを作成する

私はStreamExの例を見ました。これは非常に素晴らしく、次のようになります

これはうまく機能し、私の出力は{seconds=1, minutes=1}問題ありません。後で数値を変換する必要がある完全な原因ではありません。

私は最適化しようとしましたSimpleEntry<String,Integer>

これはコンパイルされますが、問題が発生しました。一部の値がマップに複数回配置され、Exception in thread "main" java.lang.IllegalStateException: Duplicate key minutes

どうすればこれを修正できますか?

編集

愚かな間違い: 2 番目の例で s1 と s2 を切り替えるのを忘れていました