内部比较器和外部比较器

内部比较器

@AllArgsConstructor
@NoArgsConstructor
@Data
public class Student implements Comparable<Student>{
    private String name;
    private double height;
    private int age;

    @Override
    public int compareTo(Student student) {//内部比较器
        //按照年龄比较
        //return this.age-student.age>0?1:-1;
        //按照身高进行比较
       // return ((Double)(this.height)).compareTo((Double)(student.height));
        //按照姓名进行比较
        return (this.name).compareTo(student.name);
    }
}
public class Test01 {
    public static void main(String[] args) {
        Student student1 = new Student("bzhansgan",2.1,13);
        Student student2 = new Student("alisi",3.1,16);
        System.out.println(student1.compareTo(student2));

    }
}

---------------------------------外部比较器实现Comparator接口   效率高于内部比较器---------------------------------------------------------

package com.msb.compareable01.compareable;

import java.util.Comparator;

/**
 * @author lcc
 * @version V1.0
 * @Package com.msb.compareable01.compareable
 * @date 2022/4/24 11:25
 */
public class Bijiaoqi implements Comparator<Student> {
    @Override
    public int compare(Student student1, Student student2) {
        return student1.getAge()-student2.getAge();

    }
}
class Bijiaoqi01 implements Comparator<Student>{
    @Override
    public int compare(Student student01, Student student02) {
        return ((Double)(student01.getHeight())).compareTo(student02.getHeight());
    }
}
class Bijiaoqi02 implements Comparator<Student>{
    @Override
    public int compare(Student student01, Student student02) {
        return ((String)(student01.getName())).compareTo(student02.getName());
    }
}
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Student {
    private String name;
    private double height;
    private int age;


}
public class Test01 {
    public static void main(String[] args) {
        Student student1 = new Student("bzhansgan",2.1,13);
        Student student2 = new Student("alisi",3.1,16);
        Bijiaoqi bijiaoqi = new Bijiaoqi();
        System.out.println(bijiaoqi.compare(student1, student2));
        Bijiaoqi01 bijiaoqi01 = new Bijiaoqi01();
        System.out.println(bijiaoqi01.compare(student1, student2));
        Bijiaoqi02 bijiaoqi02 = new Bijiaoqi02();
        System.out.println(bijiaoqi02.compare(student1, student2));

    }
}

 

posted @ 2022-04-24 11:35  花心大萝卜li  阅读(56)  评论(0)    收藏  举报