Comparator: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 16: Line 16:


     ...
     ...
}
</syntaxhighlight>
=Comparator.comparing()=
Factory methods that produces comparator lambdas, based on various criteria.
<syntaxhighlight lang='java'>
@FunctionalInterface
public interface Comparator<T> {
}
}
</syntaxhighlight>
</syntaxhighlight>

Revision as of 19:35, 29 March 2018

External

Internal

Overview

@FunctionalInterface
public interface Comparator<T> {

    int compare(T o1, T o2);

    ...
}

Comparator.comparing()

Factory methods that produces comparator lambdas, based on various criteria.

@FunctionalInterface
public interface Comparator<T> {
}

Concise Sorting

Java 8 List has a sort() method that accepts a java.util.Comparator.

java.util.Comparator is a functional interface, so we can provide a lambda expression instead.

java.util.Comparator comes with static methods that build Comparator instances, so if compare apples by weight, we can write this:

List<Apple> apples = ...
apples.sort(Comparator.comparing(a -> a.getWeight()));

The last form can be compacted even further using method references:

List<Apple> apples = ...
apples.sort(Comparator.comparing(Apple::getWeight));

Composition Methods