Class ComparatorUtils
- java.lang.Object
-
- org.apache.commons.collections4.ComparatorUtils
-
public class ComparatorUtils extends java.lang.Object
Provides convenient static utility methods forComparator
objects.Most of the functionality in this class can also be found in the
comparators
package. This class merely provides a convenient central place if you have use for more than one class in thecomparators
subpackage.- Since:
- 2.1
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.Comparator
NATURAL_COMPARATOR
Comparator for natural sort order.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.Comparator<java.lang.Boolean>
booleanComparator(boolean trueFirst)
Gets a Comparator that can sort Boolean objects.static <E> java.util.Comparator<E>
chainedComparator(java.util.Collection<java.util.Comparator<E>> comparators)
Gets a comparator that compares using a collection ofComparator
s, applied in (default iterator) sequence until one returns not equal or the collection is exhausted.static <E> java.util.Comparator<E>
chainedComparator(java.util.Comparator<E>... comparators)
Gets a comparator that compares using an array ofComparator
s, applied in sequence until one returns not equal or the array is exhausted.static <E> E
max(E o1, E o2, java.util.Comparator<E> comparator)
Returns the larger of the given objects according to the given comparator, returning the second object if the comparator returns equal.static <E> E
min(E o1, E o2, java.util.Comparator<E> comparator)
Returns the smaller of the given objects according to the given comparator, returning the second object if the comparator returns equal.static <E extends java.lang.Comparable<? super E>>
java.util.Comparator<E>naturalComparator()
Gets a comparator that uses the natural order of the objects.static <E> java.util.Comparator<E>
nullHighComparator(java.util.Comparator<E> comparator)
Gets a Comparator that controls the comparison ofnull
values.static <E> java.util.Comparator<E>
nullLowComparator(java.util.Comparator<E> comparator)
Gets a Comparator that controls the comparison ofnull
values.static <E> java.util.Comparator<E>
reversedComparator(java.util.Comparator<E> comparator)
Gets a comparator that reverses the order of the given comparator.static <I,O>
java.util.Comparator<I>transformedComparator(java.util.Comparator<O> comparator, Transformer<? super I,? extends O> transformer)
Gets a Comparator that passes transformed objects to the given comparator.
-
-
-
Method Detail
-
naturalComparator
public static <E extends java.lang.Comparable<? super E>> java.util.Comparator<E> naturalComparator()
Gets a comparator that uses the natural order of the objects.- Type Parameters:
E
- the object type to compare- Returns:
- a comparator which uses natural order
-
chainedComparator
public static <E> java.util.Comparator<E> chainedComparator(java.util.Comparator<E>... comparators)
Gets a comparator that compares using an array ofComparator
s, applied in sequence until one returns not equal or the array is exhausted.- Type Parameters:
E
- the object type to compare- Parameters:
comparators
- the comparators to use, not null or empty or containing nulls- Returns:
- a
ComparatorChain
formed from the input comparators - Throws:
java.lang.NullPointerException
- if comparators array is null or contains a null- See Also:
ComparatorChain
-
chainedComparator
public static <E> java.util.Comparator<E> chainedComparator(java.util.Collection<java.util.Comparator<E>> comparators)
Gets a comparator that compares using a collection ofComparator
s, applied in (default iterator) sequence until one returns not equal or the collection is exhausted.- Type Parameters:
E
- the object type to compare- Parameters:
comparators
- the comparators to use, not null or empty or containing nulls- Returns:
- a
ComparatorChain
formed from the input comparators - Throws:
java.lang.NullPointerException
- if comparators collection is null or contains a nulljava.lang.ClassCastException
- if the comparators collection contains the wrong object type- See Also:
ComparatorChain
-
reversedComparator
public static <E> java.util.Comparator<E> reversedComparator(java.util.Comparator<E> comparator)
Gets a comparator that reverses the order of the given comparator.- Type Parameters:
E
- the object type to compare- Parameters:
comparator
- the comparator to reverse- Returns:
- a comparator that reverses the order of the input comparator
- See Also:
ReverseComparator
-
booleanComparator
public static java.util.Comparator<java.lang.Boolean> booleanComparator(boolean trueFirst)
Gets a Comparator that can sort Boolean objects.The parameter specifies whether true or false is sorted first.
The comparator throws NullPointerException if a null value is compared.
- Parameters:
trueFirst
- whentrue
, sorttrue
Boolean
s beforefalse
Boolean
s.- Returns:
- a comparator that sorts booleans
-
nullLowComparator
public static <E> java.util.Comparator<E> nullLowComparator(java.util.Comparator<E> comparator)
Gets a Comparator that controls the comparison ofnull
values.The returned comparator will consider a null value to be less than any nonnull value, and equal to any other null value. Two nonnull values will be evaluated with the given comparator.
- Type Parameters:
E
- the object type to compare- Parameters:
comparator
- the comparator that wants to allow nulls- Returns:
- a version of that comparator that allows nulls
- See Also:
NullComparator
-
nullHighComparator
public static <E> java.util.Comparator<E> nullHighComparator(java.util.Comparator<E> comparator)
Gets a Comparator that controls the comparison ofnull
values.The returned comparator will consider a null value to be greater than any nonnull value, and equal to any other null value. Two nonnull values will be evaluated with the given comparator.
- Type Parameters:
E
- the object type to compare- Parameters:
comparator
- the comparator that wants to allow nulls- Returns:
- a version of that comparator that allows nulls
- See Also:
NullComparator
-
transformedComparator
public static <I,O> java.util.Comparator<I> transformedComparator(java.util.Comparator<O> comparator, Transformer<? super I,? extends O> transformer)
Gets a Comparator that passes transformed objects to the given comparator.Objects passed to the returned comparator will first be transformed by the given transformer before they are compared by the given comparator.
- Type Parameters:
I
- the input object type of the transformed comparatorO
- the object type of the decorated comparator- Parameters:
comparator
- the sort order to usetransformer
- the transformer to use- Returns:
- a comparator that transforms its input objects before comparing them
- See Also:
TransformingComparator
-
min
public static <E> E min(E o1, E o2, java.util.Comparator<E> comparator)
Returns the smaller of the given objects according to the given comparator, returning the second object if the comparator returns equal.- Type Parameters:
E
- the object type to compare- Parameters:
o1
- the first object to compareo2
- the second object to comparecomparator
- the sort order to use- Returns:
- the smaller of the two objects
-
max
public static <E> E max(E o1, E o2, java.util.Comparator<E> comparator)
Returns the larger of the given objects according to the given comparator, returning the second object if the comparator returns equal.- Type Parameters:
E
- the object type to compare- Parameters:
o1
- the first object to compareo2
- the second object to comparecomparator
- the sort order to use- Returns:
- the larger of the two objects
-
-