Module java.base
Package java.util
Interface Comparator<T>
-
Type Parameters:
T
- the type of objects that may be compared by this comparatorAll Known Implementing Classes:
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
一个比较函数,它对一些对象集合强制执行总排序。比较器可以传递给排序方法(例如Collections.sort或者Arrays.sort)。允许对排序顺序进行精确控制。比较器还可以用来控制某些数据结构的顺序(例如经过排序过的sets或经过排序的maps),或者为没有自然排序的对象集合提供排序。
static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor)
接受一个从类型T中提取int排序键的函数,并返回一个Comparator<T>,该比较器通过排序键进行比较。
如果指定的函数也是可序列化的,则返回的比较器是可序列化的。
类型参数:
T——要比较的元素的类型
参数:
keyExtractor——用于提取整数排序键的函数
返回值:
通过提取的键进行比较的比较器
default Comparator<T> thenComparing(Comparator<? super T> other)
返回一个字典顺序比较器与另一个比较器的比较。
如果这个比较器认为两个元素相等,即compare(a, b) == 0,则使用other来确定顺序。如果指定的比较器也是可序列化的,则返回的比较器是可序列化的。
API 注释:
例如,要根据字符串的长度和不区分大小写的自然顺序对字符串集合进行排序,可以使用以下代码组成比较器:
Comparator<String> cmp = Comparator.comparingInt(String::length)
.thenComparing(String.CASE_INSENSITIVE_ORDER);
参数:
other——当比较器比较两个相等的对象时,要使用的另一个比较器。
返回值:
一个词典级比较器,由这个比较器和另一个比较器组成。