問題タブ [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 投票する
2 に答える
16148 参照

java - アナグラムのリストをリストのマップにグループ化する Java 8 ストリーム関数

Java 8 がリリースされようとしています... Streams について学習しているときに、新しい方法の 1 つを使用してアナグラムをグループ化するというシナリオに入りました。私が直面している問題は、map/reduce 関数を使用して Strings オブジェクトをグループ化する方法が見つからないことです。代わりに、 Aggregate Operations - Reductionに記載されているのと同様の方法を作成する必要がありました。

ドキュメントに基づいて、次を簡単に使用できます。

したがって、Collectors.groupingBy()使用される方法に基づいてマップのキーが集約されます。ただし、このアプローチは、単純な String プレゼンテーションをラップするにはあまりにも面倒です。

これにより、次のように出力されます。

代わりに、新しい map/reduce 関数を使用して結果を同様のインターフェースに蓄積する、よりシンプルで直接的なソリューションを探していますMap<String, List<String>List を Map に変換する方法に基づいて、次のものがあります。

しかし、このコードは 1-1 の Map であるため、キーの衝突が発生します。

これは理にかなっています...groupingBy値をラップするPOJOを使用せずに、最初のソリューションと同様の出力にそれらをグループ化する方法はありますか?

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

java - java.util.stream.Streamable はどうなりましたか?

このような初期のjdk8-eajavadocは、インターフェースがあったことを示しています。java.util.stream.StreamableStreamIterableIterator

今は に行き詰まっているように見えますがSupplier<Stream>、これは確かに同じではありません。

どうしたのStreamable

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

java - プリミティブ ストリームで Collector を使用する

Java 8 には、プリミティブ ストリームでStream::collect(Collector)を使用する方法はありますか?

通常、Stream<Integer>例として、収集するための 2 つの方法があります。

ただしIntStream、収集する方法は 1 つだけです。

サンプルコードとして、次のものがあります。

ご覧のとおり、メソッドを使用できるようにするために、最初にプリミティブをボックス化しますCollectors.

プリミティブを使用しても同じコードを使用できる方法はありますCollectors.toMap か?

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

java - Java 8 Stream クラスが AutoCloseable なのはなぜですか?

Java 8 では、Stream クラスは AutoCloseable を実装します。これは、ストリーム インスタンスを明示的に閉じる必要があることを意味します。

ファイル ハンドラーと DB 接続が閉じられる理由がわかりました。しかし、なぜストリーム?

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

java - 並列ストリーム、コレクター、およびスレッド セーフ

リスト内の各単語の出現回数をカウントする以下の簡単な例を参照してください。

最後に、wordsCountです{a=2, b=1, c=1}

しかし、私のストリームは非常に大きく、ジョブを並列化したいので、次のように書きます:

wordsCountただし、それは単純なことに気付いたHashMapので、スレッドの安全性を確保するために同時実行マップを明示的に要求する必要があるかどうか疑問に思います。

非同時コレクターを並列ストリームで安全に使用できますか? または、並列ストリームから収集する場合は同時バージョンのみを使用する必要がありますか?