比较器
是Java内含的一个借口,可以在Java内实现一个方法,然后继承该借口,实现类似于C++的运算符重载,让内部既有的排序方法,和各种排序结构实现不同的排序
比较器的实质是重载比较运算符
定义方法
public static class IdAscendingComparator implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {//直接实现这个比较方法就行
return o1.id - o2.id;
}
}
调用方法
比较器可以很好的应用在特殊标准的排序上
例如已经存在的快速排序:
Arrays.sort(students, new IdAscendingComparator());
比较器可以很好的应用在根据特殊标准排序的结构上
例如优先级队列:
PriorityQueue<Student> maxHeapBasedAge = new PriorityQueue<>(new AgeDescendingComparator());