外部比较器
外部比较器可以说是内部比较器的加强版,它在封装类的外面可以定义多个类来对不同的功能进行实现,如果说是内部比较器的话,重写方法,只能返回一个值,如果说有多个功能实现的话会比较麻烦。如果使用外部比较器就可以定义可能会需要的功能程序,实现起来就会相对来说简单很多。
第一步,定义排序代码实现图示:
源码+注释展示:
//定义一个排序方法,需要用到的时候直接在其他主方法直接调用即可
public static void sort(Object[] arr,Comparator com){
//定义一个排序方法
for (int i = 1; i <= arr.length-1; i++) {
//对数组进行遍历,定义数组比较的两个元素
for (int j = i; j <= arr.length-1; j++) {
if (com.compare(arr[i-1], arr[j])>0) {
//如果前面一个值大于后面一个值,那么将会执行下面的操作,否则不执行里面的语句
Object temp = arr[i-1];//在这里主要执行的是一个交换的工作,数组大的往后放,小的往前
arr[i-1] = arr[j];//将小的值给到i-1
arr[j] = temp;//最后完成交换
}
}
}
}
第二步,定义一个封装类,然后使用外部排序的方法实现多个功能的实现,在需要用到要用的功能时直接进行new对象即可进行使用。图示如下:
正如上图所示,在封装类的外部实现接口Comparator,然后进行功能实现的程序设计。
源码+注释:
import java.util.Comparator;
public class Student{
//实现compareTo接口
private String name;
private int age;