I needed a function to sum (and therefor group) the values of a map of objects to Integers. My first solution was something like
As you can see, i use the collect method with a custom supplier, accumulator and combiner. The supplier prepares a new map, the accumulator takes the map and an entry and then uses Map#merge to sum the values.
The combiner than merges all created maps with the same logic.
There’s a nicer solution:
Use Collectors.html#groupingBy. This static helper method takes a classifier and a downstream. The classifier acts the same way as a Group-By clause in SQL, the downstream performs the actual reduction (in this case, a sum).
Anyway, i have the slight feeling, i’m recreating a SQL syntax or at least using the idea.