比较器类

需求场景:

应用中我们不仅需要比较基本数据类型,对基本数据类型进行排序。有时还需要比较我们自定义的类,对我们自定义的类进行排序。这时就需要在我们写一个针对我们自定义类的比较器类了(否则比较的是对象的地址)。

实现:
  1. 实现Comparator接口
  2. 重写compare方法,返回负数表示第一个参数比第二个参数大,正数表示小,0表示相等
public class GradeCompare implements Comparator{
        @Override
        public int compare(Student o1, Student o2) {    
            //返回负数表示第一个参数比第二个参数大,正数表示小,0表示相等
            return o1.grade - o2.grade;
        }
    }
应用

在Array.sort()中传入我们自定义的比较器实例,格式为Array.sort(待排序的数组,自定义的比较器实例)

public static void main(String[] args) {
        Student s1 = new Student("A",90);
        Student s2 = new Student("B",80);
        Student s3 = new Student("c",98);
        Student[] s = {s1, s2, s3};
        Arrays.sort(s, new GradeCompare());
             //student数组输出方法
        printStudentArray(s);
    }

输出为:


图片.png

你可能感兴趣的:(比较器类)