Additional Collectors
    Brian Goetz 
    brian.goetz at oracle.com
       
    Wed Apr  3 10:27:32 PDT 2013
    
    
  
There's been some feedback on lambda-dev and from the recent Lambda Hack 
Day on Collectors.  There were two big categories:
1.  Need more / better docs.
2.  We want some more collectors.
The first is obvious and we've been working on those.  Here are some 
suggestions for simple additions to the Collector set.
  - count() (and possibly sum, min, max)
These are straighforward analogues of the specialized stream methods; 
they serve as a "gentle on ramp"  to understanding reduction.
People also expressed concern that the "toMap()" (nee mappedTo, 
joiningWith) is not flexible enough.  As a reminder, what toMap does is 
take a Stream<T> and a function T->U and produces a Map<T,U>.  Some 
people call this "backwards"; they would rather have something that 
takes a Stream<T> and function T->K and produces a Map<K,T>.  And others 
would rather have something that takes two functions T->K and T->U and 
produces a Map<K,U>.
All of these are useful enough.  The question is how to fit them into 
the API.  I think the name "toMap" is a bit of a challenge, since there 
are several "modes" and not all of them can be easily handled by 
overloads.  Maybe:
   toMap(T->U) // first version
   toMap(T->K, T->U) // third version
and leave the second version out, since the third version can easily 
simulate the second?
    
    
More information about the lambda-libs-spec-observers
mailing list