RFR: JDK-8133680 add Stream.foldLeft() terminal operation
Brian Goetz
brian.goetz at oracle.com
Tue Aug 15 14:49:44 UTC 2017
It's an overstatement to say that forEachOrdered/foldLeft cannot exploit
parallelism. If I have a stream:
stream.parallel()
.map(e -> expensiveFn(e))
.forEachOrdered(e -> ...);
We still can (and do) perform the mapping in parallel even if we cannot
perform the folding step yet. See ForEachOps.ForEachOrderedTask.
On 8/13/2017 3:45 PM, Remi Forax wrote:
> Hi Tagir,
> foldLeft (and foldRight) were intentionally not included in the Stream API because as you know, their semantics is too strong to be useful for parallel streams.
>
> regards,
> Rémi
>
> ----- Mail original -----
>> De: "Tagir Valeev" <amaembo at gmail.com>
>> À: "core-libs-dev" <core-libs-dev at openjdk.java.net>
>> Envoyé: Dimanche 13 Août 2017 15:27:36
>> Objet: RFR: JDK-8133680 add Stream.foldLeft() terminal operation
>> Please review the preliminary implementation for Stream foldLeft and
>> foldRight operations:
>>
>> http://cr.openjdk.java.net/~tvaleev/webrev/8133680/r1/
>>
>> This implementation has no tests yet. Before writing them I'd like to
>> be sure that this enhancement could be accepted in general (or
>> probably foldLeft is accepted and foldRight is not?) Could anybody
>> sponsor it when it will be complete?
>>
>> Thank you in advance!
>>
>> Tagir Valeev.
More information about the core-libs-dev
mailing list