September 2019
Intermediate to advanced
816 pages
18h 47m
English
Let's assume that we are defining the following Comparator for Melon:
public class MelonComparator implements Comparator { @Override public int compare(Object m1, Object m2) { return Integer.compare(((Melon) m1).getWeight(), ((Melon) m2).getWeight()); }}
Now, we can refer to it as follows:
MelonComparator mc = new MelonComparator();List<Melon> sorted = melons.stream() .sorted((Melon m1, Melon m2) -> mc.compare(m1, m2)) .collect(Collectors.toList());
List<Melon> sorted = melons.stream() .sorted(mc::compare) .collect(Collectors.toList());
Of course, we can call Integer.compare() directly as well:
List<Integer> sorted = melons.stream() .map(m ...