Comparable 中文翻译为:可比较
java中,某两个同类的对象需要进行排序,
则他们的类需要变成Comparable类的实现类才可以进行排序
Comparable为java中的默认比较规则
Comparator为java中的临时比较规则
这里只示例一下Comparable类的使用方法
Student类中有两个属性,id,name。
List<Student> studentList = new ArrayList<Student>();
Random random = new Random();
studentList.add(new Student(random.nextInt(1000) + "", "Mike"));//int+string的空值=string类
studentList.add(new Student(random.nextInt(1000) + "", "Angela"));
studentList.add(new Student(random.nextInt(1000) + "", "Lucy"));
studentList.add(new Student(10000 + "", "Beyonce"));
Collections.sort(studentList);//对储存有student类的集合进行排序,编译器报错,无法进行排序,因为没将student作为Comparable的实现类
for (Student student : studentList) {
System.out.println("学生:" + student.id + ":" + student.name);
}
将student作为 Comparable的实现类
并且实现compareTo方法()
public class Student implements Comparable<Student> {
public String id;
public String name;
public Set<Course> courses;
public Student(String id, String name) {
this.id = id;
this.name = name;
this.courses = new HashSet<Course>();
}
//@Override
public int compareTo(Student o) {
// TODO Auto-generated method stub
return this.id.compareTo(o.id);
}}