Into

Remi Forax forax at univ-mlv.fr
Wed Dec 26 11:05:19 PST 2012


On 12/26/2012 07:38 PM, Brian Goetz wrote:
>
> Since we can't read the user's mind about whether they care about 
> encounter order or not (e.g., they may use a List because there's no 
> Multiset implementation handy), I think we need to provide ways of 
> aggregating that let the user explicitly choose between 
> order-preserving aggregation and concurrent aggregation.  I think 
> having the word "concurrent" in the code somewhere isn't a bad clue. 

This defeat one important purpose of the Stream API which is to be 
parallel/sequential agnostic from the user POV.
And again, people will use a parallel streams without the concurrent 
aggregator.

What about this use case ?
   <T> List<T> extractList(Stream<T> stream) {
     return stream. ... ops ...      // <-- please complete
   }
   ... main(...) {
      Collection<T> c = ...
      extractList(c.stream());
      extractList(c.parallelStream());
   }

Here having a toList() that take care about concurrency if needed is 
very appealing.

Rémi



More information about the lambda-libs-spec-observers mailing list