Comparator中compare方法的使用
- 首先要明确Comparator是一个函数式接口(有@FunctionalInterface注解),说明可以使用Lambda表达式完成比较操作,并且其中T指的是你要比较的类型
- 在这个接口中必须要实现的方法是int compare(T o1, T o2);
int compare(T o1, T o2);
- 这里详细解释一下比较规则,如果在一个list集合{1, 0, 0, 2}中选这种比较规则,o1是每次要进行比较的参数,o2是每次新来的参数,举个例子:o1会一直是第一个元素1不会变,每次比完以后,o2都会进行替换,依次替换为:0, 0, 2
- 这里要返回的是一个int值,如果返回为true,o2会在o1的上面,返回为false,o2会在o1的下面,反正每次比较都是在和o1进行比较
- 排序规则:如果传递的参数是第一个是o1,第二个是o2,比较的时候也是用o1-o2进行比较,那么就是升序;如果比较的时候是用反过来o2-o1进行比较,那么就是降序