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, wait
forEach, spliterator
comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
public ComparatorChain()
UnsupportedOperationException
public 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
- 比较器ComparatorChain
public 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
- 比较器数组ComparatorChain
public static <E> ComparatorChain<E> of(List<Comparator<E>> comparators)
E
- 被比较对象类型comparators
- 比较器列表ComparatorChain
public static <E> ComparatorChain<E> of(List<Comparator<E>> comparators, BitSet bits)
E
- 被比较对象类型comparators
- 比较器列表bits
- Comparator
列表对应的排序boolean值,true表示正序,false反序ComparatorChain
public 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
- Comparator
IndexOutOfBoundsException
- if index < 0 or index >= size()public ComparatorChain<E> setComparator(int index, Comparator<E> comparator, boolean reverse)
index
- 位置comparator
- Comparator
reverse
- 是否反序,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)
Chain
addChain
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 © 2024. All rights reserved.