Arrays/Collections.sort中,调整排序顺序(升序/降序),override重写Comparator比较器。
- Comparator比较器返回类型为int,若需要升序,则
return o1-o2
,降序则return o2-o1
; - 准确一些讲,return值 < 0,则会把第一个参数放在前面,return值>0,则会把第二个参数放在前面。
- 可以实现一些特殊规则的排序。
- int[]数组,不可实现重写比较器,Integer[]数组可以。
- 常规写法:
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
- lambda表达式写法1:
- 如果笔试等没有IDE提示时,这么写比较困难。直接写lambda表达式会容易很多。
Collections.sort(list, (x, y) -> x -y);
- lambda表达式写法2:
Collections.sort(list, (x, y) -> {
return x - y;
});