public class ComparatorChain<E> extends Object implements Chain<Comparator<E>,ComparatorChain<E>>, Comparator<E>, Serializable
| Constructor and Description |
|---|
ComparatorChain()
构造空的比较器链,必须至少有一个比较器,否则会在compare时抛出
UnsupportedOperationException |
ComparatorChain(Comparator<E> comparator)
构造,初始化单一比较器。
|
ComparatorChain(Comparator<E> comparator,
boolean reverse)
构造,初始化单一比较器。
|
ComparatorChain(List<Comparator<E>> list)
构造,使用已有的比较器列表
|
ComparatorChain(List<Comparator<E>> list,
BitSet bits)
构造,使用已有的比较器列表和对应的BitSet
BitSet中的boolean值需与list中的 Comparator一一对应,true表示正序,false反序 |
| Modifier and Type | Method and Description |
|---|---|
ComparatorChain<E> |
addChain(Comparator<E> element)
加入责任链
|
ComparatorChain<E> |
addComparator(Comparator<E> comparator)
在链的尾部添加比较器,使用正向排序
|
ComparatorChain<E> |
addComparator(Comparator<E> comparator,
boolean reverse)
在链的尾部添加比较器,使用给定排序方式
|
int |
compare(E o1,
E o2)
执行比较
按照比较器链的顺序分别比较,如果比较出相等则转向下一个比较器,否则直接返回 |
boolean |
equals(Object object) |
int |
hashCode() |
boolean |
isLocked()
是否已经被锁定。
|
Iterator<Comparator<E>> |
iterator() |
static <E> ComparatorChain<E> |
of(Comparator<E>... comparators)
|
static <E> ComparatorChain<E> |
of(Comparator<E> comparator)
|
static <E> ComparatorChain<E> |
of(Comparator<E> comparator,
boolean reverse)
|
static <E> ComparatorChain<E> |
of(List<Comparator<E>> comparators)
|
static <E> ComparatorChain<E> |
of(List<Comparator<E>> comparators,
BitSet bits)
|
ComparatorChain<E> |
setComparator(int index,
Comparator<E> comparator)
替换指定位置的比较器,保持原排序方式
|
ComparatorChain<E> |
setComparator(int index,
Comparator<E> comparator,
boolean reverse)
替换指定位置的比较器,替换指定排序方式
|
ComparatorChain<E> |
setForwardSort(int index)
更改指定位置的排序方式为正序
|
ComparatorChain<E> |
setReverseSort(int index)
更改指定位置的排序方式为反序
|
int |
size()
比较器链中比较器个数
|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitforEach, spliteratorcomparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic ComparatorChain()
UnsupportedOperationExceptionpublic ComparatorChain(Comparator<E> comparator)
comparator - 在比较器链中的第一个比较器public ComparatorChain(Comparator<E> comparator, boolean reverse)
comparator - 在比较器链中的第一个比较器reverse - 是否反序,true表示反序,false正序public ComparatorChain(List<Comparator<E>> list)
list - 比较器列表ComparatorChain(List, BitSet)public ComparatorChain(List<Comparator<E>> list, BitSet bits)
Comparator一一对应,true表示正序,false反序list - Comparator 列表bits - Comparator 列表对应的排序boolean值,true表示正序,false反序public static <E> ComparatorChain<E> of(Comparator<E> comparator)
E - 被比较对象类型comparator - 比较器ComparatorChainpublic static <E> ComparatorChain<E> of(Comparator<E> comparator, boolean reverse)
E - 被比较对象类型comparator - 比较器reverse - 是否反向ComparatorChain@SafeVarargs public static <E> ComparatorChain<E> of(Comparator<E>... comparators)
E - 被比较对象类型comparators - 比较器数组ComparatorChainpublic static <E> ComparatorChain<E> of(List<Comparator<E>> comparators)
E - 被比较对象类型comparators - 比较器列表ComparatorChainpublic static <E> ComparatorChain<E> of(List<Comparator<E>> comparators, BitSet bits)
E - 被比较对象类型comparators - 比较器列表bits - Comparator 列表对应的排序boolean值,true表示正序,false反序ComparatorChainpublic ComparatorChain<E> addComparator(Comparator<E> comparator)
comparator - Comparator 比较器,正向public ComparatorChain<E> addComparator(Comparator<E> comparator, boolean reverse)
comparator - Comparator 比较器reverse - 是否反序,true表示正序,false反序public ComparatorChain<E> setComparator(int index, Comparator<E> comparator) throws IndexOutOfBoundsException
index - 位置comparator - ComparatorIndexOutOfBoundsException - if index < 0 or index >= size()public ComparatorChain<E> setComparator(int index, Comparator<E> comparator, boolean reverse)
index - 位置comparator - Comparatorreverse - 是否反序,true表示正序,false反序public ComparatorChain<E> setForwardSort(int index)
index - 位置public ComparatorChain<E> setReverseSort(int index)
index - 位置public int size()
public boolean isLocked()
public Iterator<Comparator<E>> iterator()
iterator in interface Iterable<Comparator<E>>public ComparatorChain<E> addChain(Comparator<E> element)
ChainaddChain in interface Chain<Comparator<E>,ComparatorChain<E>>element - 责任链新的环节元素public int compare(E o1, E o2) throws UnsupportedOperationException
compare in interface Comparator<E>o1 - 第一个对象o2 - 第二个对象UnsupportedOperationException - 如果比较器链为空,无法完成比较Copyright © 2025. All rights reserved.