Java比较器
比较器
一、内部比较器

-
写在实体类内,实体类并实现 Comparable接口的compareTo方法,其中<>为泛型参数,有点像方法的形参,占位可以与同类型进行比较,且泛型参数不能为基本数据类型。
-
compareTo方法只是决定降序还是排序,Arrays.sort()是根据compareTo来完成降序或者升序的。
-
编写compareTo()方法:
int类型排序:
String类型排序
double类型排序:
二、外部比较器
-
专门创建一个类来实现Comparator接口

-
外部比较器可以创建多个,根据传入Arrays.sort()来调用,Arrays.sort(students,new Compare1());前一个参数是需要比较的,后一个是调用的方法new成的对象。
-
Comparator是一个函数的接口,可以用lamabda表达式来表述如:

再继续使用三元运算符优化:
o1.name.equals(o2.name)?o1.age==o2.age? return Double.compare(o2.score,o1.score):return o1.age-o2.age :return o2.name.compareTo(o1.name);
评论