比较器类

需求场景:

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

实现:
  1. 实现Comparator接口
  2. 重写compare方法,返回负数表示第一个参数比第二个参数大,正数表示小,0表示相等
public class GradeCompare implements Comparator<Student>{
        @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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容