Collectors.joiningWith
    Brian Goetz 
    brian.goetz at oracle.com
       
    Thu Mar  7 11:07:03 PST 2013
    
    
  
On Don's suggestion, I replaced the four forms of Collectors.joiningWith 
with two forms of toMap:
     Collector<T, Map<T,U>> toMap(Function<? super T, ? extends U> mapper)
Collector<T, M> toMap(Function<? super T, ? extends U> mapper,
                       Supplier<M> mapSupplier,
                       BinaryOperator<U> mergeFunction)
The four forms we had were:
  { has merge function, not } x { has ctor, not }
and these were replace with two forms: has nothing, has everything.
I think the toMap name makes more sense anyway.
We'll have to expose an entry point for the default merge function 
(which throws), currently is called Collectors.throwingMerger().  So if 
you want the default behavior but with TreeMap, you'd do:
   TreeMap<T, U> m = s.collect(toMap(func, TreeMap::new,
                                     throwingMerger()));
    
    
More information about the lambda-libs-spec-experts
mailing list