Class ComparatorUtils
- java.lang.Object
-
- org.apache.commons.collections4.ComparatorUtils
-
public class ComparatorUtils extends 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 Comparator
NATURAL_COMPARATOR
Comparator for natural sort order.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Comparator<Boolean>
booleanComparator(boolean trueFirst)
Gets a Comparator that can sort Boolean objects.static <E> Comparator<E>
chainedComparator(Collection<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> Comparator<E>
chainedComparator(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, 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, 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 Comparable<? super E>>
Comparator<E>naturalComparator()
Gets a comparator that uses the natural order of the objects.static <E> Comparator<E>
nullHighComparator(Comparator<E> comparator)
Gets a Comparator that controls the comparison ofnull
values.static <E> Comparator<E>
nullLowComparator(Comparator<E> comparator)
Gets a Comparator that controls the comparison ofnull
values.static <E> Comparator<E>
reversedComparator(Comparator<E> comparator)
Gets a comparator that reverses the order of the given comparator.static <I,O>
Comparator<I>transformedComparator(Comparator<O> comparator, Transformer<? super I,? extends O> transformer)
Gets a Comparator that passes transformed objects to the given comparator.
-
-
-
Field Detail
-
NATURAL_COMPARATOR
public static final Comparator NATURAL_COMPARATOR
Comparator for natural sort order.
-
-
Method Detail
-
naturalComparator
public static <E extends Comparable<? super E>> 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> Comparator<E> chainedComparator(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:
NullPointerException
- if comparators array is null or contains a null- See Also:
ComparatorChain
-
chainedComparator
public static <E> Comparator<E> chainedComparator(Collection<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:
NullPointerException
- if comparators collection is null or contains a nullClassCastException
- if the comparators collection contains the wrong object type- See Also:
ComparatorChain
-
reversedComparator
public static <E> Comparator<E> reversedComparator(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 Comparator<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.
-
nullLowComparator
public static <E> Comparator<E> nullLowComparator(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> Comparator<E> nullHighComparator(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> Comparator<I> transformedComparator(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, 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, 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
-
-