加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

comparator和comparable的区别

发布时间:2020-12-15 07:19:15 所属栏目:Java 来源:网络整理
导读:Comparable??java.lang??内比较器 传入一个对象,与自身进行比较,返回差值 正整数 0 负整数。 实现接口 :public interface ComparableT 接口定义的方法:public int compareTo(T o); 举例: private static class Student implements Comparable{ int id;

Comparable??java.lang??内比较器

传入一个对象,与自身进行比较,返回差值 正整数 0 负整数。

实现接口 :public interface Comparable<T>

接口定义的方法:public int compareTo(T o);

举例:

    private static  class Student implements Comparable{
        int id;

        private Student(int id){
            this.id = id;
        }

        @Override
        public int compareTo(Object o) {
            return this.id - ((Student)o).id;
        }
    }
    public void studentCompareTo(){
        Student s1 = new Student(10);
        Student s2 = new Student(20);

        int b = s1.compareTo(s2);
        System.out.println(String.valueOf(b));
    }

 

Comparator??java.util?外比较器

传入两个对象,进行比较

实现接口:public interface Comparator<T>?

接口定义的方法??int compare(T o1,T o2);

举例

   private static class StudentCom1 implements Comparator<Student> {
        @Override
        public int compare(Student o1,Student o2) {
            return o1.id - o2.id;
        }
    }

    public void studentCompatator() {
        List<Student> students = new ArrayList<>();
        Student student1 = new Student(10);
        students.add(student1);
        Student student2 = new Student(20);
        students.add(student2);
        Student student3 = new Student(15);
        students.add(student3);

        Collections.sort(students,new StudentCom1());
        for (Student student : students)
            System.out.println(student.id);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读