public class CompoundComparator<T> extends Object implements Comparator<T>, Serializable
A compound comparator calls each Comparator in sequence until a single Comparator returns a non-zero result, or the comparators are exhausted and zero is returned.
This facilitates in-memory sorting similar to multi-column sorting in SQL. The order of any single Comparator in the list can also be reversed.
| Constructor and Description | 
|---|
CompoundComparator()
Construct a CompoundComparator with initially no Comparators. 
 | 
CompoundComparator(Comparator... comparators)
Construct a CompoundComparator from the Comparators in the provided array. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
addComparator(Comparator<? extends T> comparator)
Add a Comparator to the end of the chain. 
 | 
void | 
addComparator(Comparator<? extends T> comparator,
             boolean ascending)
Add a Comparator to the end of the chain using the provided sort order. 
 | 
int | 
compare(T o1,
       T o2)  | 
boolean | 
equals(Object obj)  | 
int | 
getComparatorCount()
Returns the number of aggregated comparators. 
 | 
int | 
hashCode()  | 
void | 
invertOrder()
Invert the sort order of each sort definition contained by this compound
 comparator. 
 | 
void | 
invertOrder(int index)
Invert the sort order of the sort definition at the specified index. 
 | 
void | 
setAscendingOrder(int index)
Change the sort order at the given index to ascending. 
 | 
void | 
setComparator(int index,
             Comparator<? extends T> comparator)
Replace the Comparator at the given index. 
 | 
void | 
setComparator(int index,
             Comparator<T> comparator,
             boolean ascending)
Replace the Comparator at the given index using the given sort order. 
 | 
void | 
setDescendingOrder(int index)
Change the sort order at the given index to descending sort. 
 | 
String | 
toString()  | 
clone, finalize, getClass, notify, notifyAll, wait, wait, waitcomparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic CompoundComparator()
public CompoundComparator(Comparator... comparators)
All Comparators will default to ascending sort order, unless they are InvertibleComparators.
comparators - the comparators to build into a compound comparatorInvertibleComparatorpublic void addComparator(Comparator<? extends T> comparator)
The Comparator will default to ascending sort order, unless it is a InvertibleComparator.
comparator - the Comparator to add to the end of the chainInvertibleComparatorpublic void addComparator(Comparator<? extends T> comparator, boolean ascending)
comparator - the Comparator to add to the end of the chainascending - the sort order: ascending (true) or descending (false)public void setComparator(int index,
                          Comparator<? extends T> comparator)
The Comparator will default to ascending sort order, unless it is a InvertibleComparator.
index - the index of the Comparator to replacecomparator - the Comparator to place at the given indexInvertibleComparatorpublic void setComparator(int index,
                          Comparator<T> comparator,
                          boolean ascending)
index - the index of the Comparator to replacecomparator - the Comparator to place at the given indexascending - the sort order: ascending (true) or descending (false)public void invertOrder()
public void invertOrder(int index)
index - the index of the comparator to invertpublic void setAscendingOrder(int index)
index - the index of the comparator to changepublic void setDescendingOrder(int index)
index - the index of the comparator to changepublic int getComparatorCount()
public int compare(T o1, T o2)
compare in interface Comparator<T>public boolean equals(Object obj)
equals in interface Comparator<T>equals in class Object