September 2019
Intermediate to advanced
816 pages
18h 47m
English
User problem: For each type of melon, I want the list of weights in ascending order.
By using mapping(Function<? super T,? extends U> mapper, Collector<? super U,A,R> downstream), we can apply a mapping function to each element of the current collector and accumulate the output in the downstream collector.
For example, for grouping the weights of melons by type, we can write the following snippet of code:
Map<String, TreeSet<Integer>> melonsMapping = melons.stream() .collect(groupingBy(Melon::getType, mapping(Melon::getWeight, toCollection(TreeSet::new))));
The output will be as follows:
{Crenshaw=[1700, 2000], Gac=[3000], Hemi=[1600, 2000, 2600]}
User problem: I want two lists. One should contain the melon types lighter than ...