ストリームAPIを使用して単一の値に減らしたいコレクションがあります。 collect
またはreduce
がうまくいくように見えますが、どちらもcombiner
オブジェクトで並列結果をマージする必要があります。私の場合、私は結合操作を持っていません。結合機能が存在しない場合、ストリームの収集/削除
ストリームには多くの要素が存在しないため、シリアルに実行するのはうれしいです。これを処理する方法はありますか?私のストリームは、1,2および3が含まれている場合
は、私は
result = stream.reduce(new Foo(),
(foo, ele) -> foo.foo(ele),
null);
はそううまくいくようだ
result = new Foo().foo(1).foo(2).foo(3);
と同等のものをやりたいが、いくつかの点で、いくつかの変化(若干長いリスト、新しいJavaバージョン)combiner
が呼び出され、それが壊れてしまいます。
私は別のタイプを返すので、reduce(BiFunction)
は私のためには機能しません。
フィールドリストをマップの内側の一部を取得するための[java8ストリームスタイルの可能性の重複? ](http://stackoverflow.com/questions/42278737/java8-stream-style-for-retrieving-a-inner-part-of-map-through-a-field-list) – shmosel
あなたが気まぐれでストリームAPIの慈悲でコンバイナを使用するには、単純なループを使用するだけではどうですか? –
@shmoselそれは問題を解決するだろうかと思う。それは、言語によって導入された問題を解決しようとしているように、少し複雑に見えますが。 –