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