今天写算法题的时候需要用到数组排序,而且是自定义的,这块知识欠缺,就进行了相应的资料查询。
以我自己的理解,Java中自定义比较器有三种
1、数组比较器
数组比较器用到了Arrays的工具类,此类中提供了许多静态方法,其中sort是默认升序,并且我查看了sort的源代码,使用的是快速排序:
快速排序相信大家都不陌生,这里不再多说了。
刚才说到sort默认是升序,如果我们想要降序呢?
Arrays提供了自定义实现排序,就是自己重新实现Comparator(下面要解释)
Arrays.sort(arr, new Comparator<Integer>() { // arr是数组名,<>中是待排序集合所包含的数据类型
@Override
public int compare(int a, int b){ // 待排序集合中的元素是什么数据类型,这里的两个函数参数就定义为什么数据类型
return a - b; 升序
// return b - a; 降序
// a