当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。
Comparable例子:
class Student implements Comparable {
public int age;
public int compareTo(Object o) {
return this.age - ((Student)o).age;
}
}
Student[] stus = new Student[]{
new Student(10),
new Student(15),
new Student(20),
};
Arrays.sort(stus);
Arrays是一个数组工具类,会根据Comparable接口中的compareTo方法来进行排序Student对象。
Comparator例子:
class Student{
public int age;
}
public class StudentComparator implements Comparator {
public int compare(Object o1, Object o2) {
return ((Student) o1).age - ((Student) o2).age;
}
}
StudentComparator comparator = new Comparator();
Arrays.sort(stus, comparator);
选择使用Comparator:可以使用多种排序标准,比如升序、降序等。