很多情况下,我们需要对一个数组进行自定义排序,就可以使用 Comparator
接口。
Comparator 接口
Comparator
接口的定义以及常用的方法如下:
1 | public interface Comparator<T> { |
compare
方法用来比较两个对象的顺序,方法返回值有 3 种情况:
o1 < o2
:返回 -1o1 == o2
:返回 0o1 > 02
:返回 1
当返回结果为正数时,需要交换 o1,o2 的次序
示例
使用 Comparator
接口对数组排序
1 | public static void main(String[] args) { |
如果对两个 int 型变量进行判断,可以使用 Integer.compare(int a, int b)
- 如果
,则返回 1 - 如果
,则返回 -1 - 如果
,则返回 0
如果使用 lambda 表达式 (a, b) -> a - b
来判断大小,会存在整数溢出的问题导致判断错误.