我有一個集合,我希望使用流API將其減少爲單個值。它看起來像collect
或reduce
將運行良好,除了他們都想要combiner
對象合併平行結果。就我而言,我沒有合併操作。當沒有組合函數存在時收集/減少流
流中不會有很多元素,所以我很樂意讓它連續運行。有沒有辦法解決這個問題?
如果我流包含1,2和3,我希望做的
result = new Foo().foo(1).foo(2).foo(3);
相當於看來
result = stream.reduce(new Foo(),
(foo, ele) -> foo.foo(ele),
null);
可能會工作,但在某些時候,某些變化(稍長一點的列表,新的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這看起來會解決問題。雖然它看起來有點複雜,就像它試圖解決語言引入的問題一樣。 –