forked from JavaDevTeam/notes
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjava-util-Comparator.java
More file actions
33 lines (26 loc) · 1.51 KB
/
Copy pathjava-util-Comparator.java
File metadata and controls
33 lines (26 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
-------------------------
Comparator<T> |
-------------------------
# 是一个函数接口
# int compare(Object obj)
* 判断对象是否相等,一般作为一些集合框架的比较器
# 默认方法
Comparator<T> thenComparing(Comparator<? super T> other)
<U> Comparator<T> thenComparing(Function<? super T, ? extends U> keyExtractor, Comparator<? super U> keyComparator)
<U extends Comparable<? super U>> Comparator<T> thenComparing(Function<? super T, ? extends U> keyExtractor)
Comparator<T> thenComparingInt(ToIntFunction<? super T> keyExtractor)
Comparator<T> thenComparingLong(ToLongFunction<? super T> keyExtractor)
Comparator<T> thenComparingDouble(ToDoubleFunction<? super T> keyExtractor)
# 提供的静态实现
static <T extends Comparable<? super T>> Comparator<T> reverseOrder()
* 逆序排序
static <T extends Comparable<? super T>> Comparator<T> naturalOrder()
* 自然排序
static <T> Comparator<T> nullsFirst(Comparator<? super T> comparator)
static <T> Comparator<T> nullsLast(Comparator<? super T> comparator)
* null 元素排在头还是尾
static <T, U> Comparator<T> comparing(Function<? super T, ? extends U> keyExtractor, Comparator<? super U> keyComparator)
static <T, U extends Comparable<? super U>> Comparator<T> comparing(Function<? super T, ? extends U> keyExtractor)
static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor)
static <T> Comparator<T> comparingLong(ToLongFunction<? super T> keyExtractor)
static<T> Comparator<T> comparingDouble(ToDoubleFunction<? super T> keyExtractor)