public class CompoundComparator<T>
extends java.lang.Object
implements java.util.Comparator<T>, java.io.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(java.util.Comparator... comparators)
Construct a CompoundComparator from the Comparators in the provided array.
|
Modifier and Type | Method and Description |
---|---|
void |
addComparator(java.util.Comparator<? extends T> comparator)
Add a Comparator to the end of the chain.
|
void |
addComparator(java.util.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(java.lang.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,
java.util.Comparator<? extends T> comparator)
Replace the Comparator at the given index.
|
void |
setComparator(int index,
java.util.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.
|
java.lang.String |
toString() |
public CompoundComparator()
public CompoundComparator(java.util.Comparator... comparators)
All Comparators will default to ascending sort order, unless they are InvertibleComparators.
comparators
- the comparators to build into a compound comparatorInvertibleComparator
public void addComparator(java.util.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 chainInvertibleComparator
public void addComparator(java.util.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, java.util.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 indexInvertibleComparator
public void setComparator(int index, java.util.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 boolean equals(java.lang.Object obj)
equals
in interface java.util.Comparator<T>
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object